nginx 突然尝试绑定错误的端口

nginx 突然尝试绑定错误的端口

我在一台 Apache 80 端口上运行。我还安装了 nginx,并且只有一个指定/etc/nginx/sites-enabled了的conf 文件listen 8888;。这工作得很好。

现在,我为不同的 vhost 添加了第二个 conf 文件/etc/nginx/sites-enabled,监听端口 7979。当我运行时sudo service nginx restart,我得到:

Restarting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
nginx.

任何文件中都/etc/nginx没有提到端口 80!我使用不同端口 (7979) 的唯一原因是,如果两个虚拟主机都有端口 8888,那么其中一个会简单地重定向到另一个,即使它们有不同的server_name值。

这里发生了什么?

答案1

这样做,我相信你会找到答案

cd /etc/nginx
grep -r 80 *

有时如果你删除默认虚拟主机,然后升级它,它会重新安装并使用端口 80

因此,如果 nginx 没有使用它,请查找正在使用什么

fuser 80/tcp

这将列出使用端口 80 的任何 pid。然后你可以用 grep 查找它

ps aux | grep pid#

答案2

如果您的服务器块没有 listen 指令,Nginx 将默认为 80。

来源:服务器故障:Nginx 尝试在端口 80 上运行,但配置已被删除

相关内容