nginx – nginx: bind()到:80失败(98:地址已经在使用)
突然之间,我得到了下面的nginx错误
* Restarting nginx * Stopping nginx nginx ...done. * Starting nginx nginx nginx: [emerg] bind() to [::]:80 failed (98: Address already in use) nginx: [emerg] bind() to [::]:80 failed (98: Address already in use) nginx: [emerg] bind() to [::]:80 failed (98: Address already in use) nginx: [emerg] bind() to [::]:80 failed (98: Address already in use) nginx: [emerg] bind() to [::]:80 failed (98: Address already in use) nginx: [emerg] still could not bind() ...done. ...done.
如果我跑
lsof -i :80 or sudo fuser -k 80/tcp
我什么也得不到 没有在港口80
然后我运行下面的:
sudo netstat -pan | grep ":80" tcp 0 0 127.0.0.1:8070 0.0.0.0:* LISTEN 15056/uwsgi tcp 0 0 10.170.35.97:39567 10.158.58.13:8080 TIME_WAIT - tcp 0 0 10.170.35.97:39564 10.158.58.13:8080 TIME_WAIT - tcp 0 0 10.170.35.97:39584 10.158.58.13:8080 TIME_WAIT - tcp 0 0 10.170.35.97:39566 10.158.58.13:8080 TIME_WAIT - tcp 0 0 10.170.35.97:39571 10.158.58.13:8080 TIME_WAIT - tcp 0 0 10.170.35.97:39580 10.158.58.13:8080 TIME_WAIT - tcp 0 0 10.170.35.97:39562 10.158.58.13:8080 TIME_WAIT - tcp 0 0 10.170.35.97:39582 10.158.58.13:8080 TIME_WAIT - tcp 0 0 10.170.35.97:39586 10.158.58.13:8080 TIME_WAIT - tcp 0 0 10.170.35.97:39575 10.158.58.13:8080 TIME_WAIT - tcp 0 0 10.170.35.97:39579 10.158.58.13:8080 TIME_WAIT - tcp 0 0 10.170.35.97:39560 10.158.58.13:8080 TIME_WAIT - tcp 0 0 10.170.35.97:39587 10.158.58.13:8080 TIME_WAIT - tcp 0 0 10.170.35.97:39591 10.158.58.13:8080 TIME_WAIT - tcp 0 0 10.170.35.97:39589 10.158.58.13:8080 TIME_WAIT -
我很难过
如何debugging?
我正在使用uwsgi
proxy端口8070. uwsgi正在运行。 Nginx不是。 我使用的是Ubuntu 12.4
以下是我的nginx conf文件的相关部分
upstream uwsgi_frontend { server 127.0.0.1:8070; } server { listen 80; server_name 127.0.0.1; location = /favicon.ico { log_not_found off; } location / { include uwsgi_params; uwsgi_buffering off; uwsgi_pass 127.0.0.1:8070; } }
这里是我如何在Ubuntu 12.04上安装nginx
nginx=stable;add-apt-repository ppa:nginx/$nginx; apt-get update apt get install nginx-full
[::]:80
是一个ipv6地址。
如果你有一个监听端口80的nginxconfiguration,并且在端口[::]:80
上,则会导致这个错误。
我有我的默认网站,可用文件中的以下内容:
listen 80; listen [::]:80 default_server;
你可以通过将ipv6only=on
添加到[::]:80
这个问题:
listen 80; listen [::]:80 ipv6only=on default_server;
有关更多信息,请参阅:
我通过运行sudo apachectl stop
解决这个问题 – 结果发现Apache在后台运行,并阻止了nginx从所需的端口启动。
在ubuntu上运行sudo /etc/init.d/apache2 stop
我发现我从来没有过的问题。
我只需要删除/etc/nginx/sites-available/default
。 然后它的工作。
我的conf在/etc/nginx/default
。
我也遇到了同样的错误。 nginx:[emerg] bind()到[::]:80失败(98:地址已经在使用),当我在浏览器中键入本地主机,然后我越来越
有用!
这是此服务器的默认网页。
networking服务器软件正在运行,但尚未添加内容。 而不是nginx的欢迎页面,apache2运行在同一个端口上,
-
findapache2 ports.conf文件
sudo /etc/apache2/ports.conf
-
改变80以外的端口,我把它做成70
-
保存文件
-
重启你的系统
它也适用于你,如果你在浏览器中inputlocalhost,你会得到nginx的欢迎页面
我有几个* .save文件(来自nano的紧急转储文件)来自我的站点中不同的NGINXconfiguration文件 – avilable目录。 一旦我删除这些.save文件,NGINX重新启动罚款。 我认为这些是无害的,因为没有相应的符号链接,但我想我错了。