当前位置: 首页 > 知识库问答 >
问题:

nginx-nginx:[emerg]bind()to[::]:80失败(98:地址已在使用中)

华峰
2023-03-14

突然,我得到了下面的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   - 

我被难倒了。我该如何调试这个?

我在端口8070上使用代理传递的uwsgi。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上安装ngin x

nginx=stable;add-apt-repository ppa:nginx/$nginx;
apt-get update
apt get install nginx-full

共有3个答案

龚伯寅
2023-03-14

[::]:80 是 IPv6 地址。

如果您有一个ngin x配置正在侦听端口80和端口[::]: 80,则可能会导致此错误。

我的默认站点可用文件中有以下内容:

listen 80;
listen [::]:80 default_server;

您可以通过将ipv6只=on添加到[::]: 80来解决此问题,如下所示:

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

有关详细信息,请参见:

http://forum.linode.com/viewtopic.php?t=8580

http://wiki.nginx.org/HttpCoreModule#listen

杜思远
2023-03-14

我的情况不同,我必须终止正在运行的Nginx进程才能重新启动它。

而不是

sudo systemctl restart nginx

我不得不使用:

sudo pkill -f nginx & wait $!
sudo systemctl start nginx
岳彬炳
2023-03-14

我通过运行修复了这个问题:

sudo apachectl stop

结果是apache在后台运行,阻止了nginx在期望的端口上启动。

在Ubuntu上,运行:

sudo /etc/init.d/apache2 stop
 类似资料:
  • 问题内容: 在我的Python套接字程序中,有时需要用中断它。当我这样做时,它确实使用关闭了连接。 但是,当我尝试重新打开它时,我必须等待一分钟左右才能重新连接。如何正确关闭插座?还是打算这样做? 问题答案: 是的,这是有意的。在这里您可以阅读详细说明。通过在套接字上设置SO_REUSEADDR选项,可以覆盖此行为。例如:

  • WSL2 Ubuntu 突然就这样了,有你人见过?

  • 问题内容: 我正在创建一个简单的flaskapp,然后将其部署在heroku上,这是第一次在heroku上部署python应用程序,说我对gunicorn并不陌生。 其他说明:使用虚拟环境。 烧瓶的版本Flask == 0.10.1 gunicorn == 19.3.0 使用’python run.py’ 工作 使用“开工开始”会出现以下错误 程序文件 档案结构 运行 init.py route.

  • 我正在尝试将套接字绑定到以下端口: 但它给出: 为什么会出现这个错误呢?

  • 问题内容: 我正在尝试将套接字绑定到以下端口: 但是它给出: 为什么会发生此错误? 问题答案: 该错误通常表示您尝试打开的端口已被另一个应用程序使用。尝试使用netstat查看哪些端口已打开,然后使用可用端口。 还检查您是否绑定到正确的IP地址(我假设它是本地主机)

  • docker构建失败,“地址已在使用中” 我的/etc/docker/daemon.json是: 编辑: edit2 Docker-信息: