在全新安装的 Ubuntu 上安装 Nginx + uWSGI - 绑定错误端口 80

在全新安装的 Ubuntu 上安装 Nginx + uWSGI - 绑定错误端口 80

我知道这是一个常见问题,通常与 apache 或其他已经在端口 80 上运行的服务有关,并且我进行了大量搜索并运行了 netstat,但仍然没有弄清楚为什么会出现此错误。

我重建了我的切片,全新安装了 Ubuntu 10.04,并设置了 nginx + uwsgi。它运行正常,我能够看到我的 Django 网站。然后,我安装了 Postgres8.4 和 Geodjango 所需的其余堆栈此链接

完成后我尝试重新启动 nginx 但出现以下错误:

sudo /etc/init.d/nginx start
Starting nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: still could not bind()

我已将 nginx 设置为监听 80。以下是输出netstat -l --numeric-ports | grep 80

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN

输出自sudo lsof +M -i4

nginx    2330     root    8u  IPv4   3195      0t0  TCP *:www (LISTEN)
nginx    2331 www-data    8u  IPv4   3195      0t0  TCP *:www (LISTEN)
uwsgi    2335        s    4u  IPv4   3259      0t0  TCP localhost:8000 (LISTEN)
uwsgi    2352        s    4u  IPv4   3259      0t0  TCP localhost:8000 (LISTEN)
uwsgi    2353        s    4u  IPv4   3259      0t0  TCP localhost:8000 (LISTEN)
uwsgi    2354        s    4u  IPv4   3259      0t0  TCP localhost:8000 (LISTEN)
uwsgi    2355        s    4u  IPv4   3259      0t0  TCP localhost:8000 (LISTEN)

有人有其他想法可以告诉我如何找出是什么阻塞了 80 端口吗?

编辑

将我的 /etc/init.d/nginx 脚本粘贴到这里:http://dpaste.com/hold/400937/

答案1

restart您不应该将其作为参数发布到您的初始化脚本吗?

我希望

sudo /etc/init.d/nginx start

如果 nginx 已在运行,则会发出警告。听起来好像是的。

答案2

fuser -n tcp 80将显示使用端口 80 的进程的 PID。

答案3

netstat -计划

将为您提供进程名称,然后使用 killall -9

然后重启 nginx

答案4

我建议您从 /etc/nginx/sites-enabled 粘贴您的实际配置文件。您还可以尝试更明确地说明您要绑定的 IP 地址。

最近,我在 Ubuntu 10.10 KVM 节点服务器上遇到了 nginx (8.54) 和 uWsgi (.96) 的奇怪现象。我采用了非本地地址绑定,结合了 VLAN/bonding 802.3ad 和桥接,因此该设置在理论上类似于提供商的“切片”。我的直觉是它与 nginx 有关,尽管 Ubuntu 中的底层也经历了巨大的变化。

我建议在配置 nginx 时尽可能明确。特别是在单个接口上有多个 IP 或别名 IP 地址的环境中。

http://linux-ip.net/html/adv-nonlocal-bind.html

相关内容