nginx 80端口占用问题

问题:nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)

nginx: [emerg] still could not bind()

1.第一种方法:查看了一下端口占用情况,并且尝试杀了进程

在端口打命令:netstat -ntpl 会显示如下情况:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -               

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      -               

tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      -               

tcp6       0      0 ::1:631                 :::*                    LISTEN    

然后在终端打:killall -9 nginx

以上是为了杀掉nginx的重复进程(然而并没有决绝寡人的问题)

2.第二种解决方案是编辑nginx的配置文件

zhouchang@zhouchang-CW65S:~$ sudo gedit /etc/nginx/sites-available/default

只需要将下面这段:

listen 80;

listen [::]:80 default_server;

改为:

listen 80;

listen [::]:80 ipv6only=on default_server;

就行了

3.

(1)先查看80端口被什么占用了:

fuser -n tcp 80

比如:root@zhouchang-CW65S:/home/zhouchang# fuser -n tcp 80

会出现类似:80/tcp:              16829 

(2)将占用端口杀掉

kill -9 1116

这样再次启动sudo /etc/init.d/nginx start就行了

相关推荐