nginx无法在80端口监听

4

我正在尝试使用gunicorn设置nginx,但我一直得到“欢迎来到nginx!”页面。我能够成功地监听其他端口(比如8080),但80端口根本不工作。

server { 
listen          80;
server_name     host.ca www.host.ca;
access_log      /var/log/nginx/example2.log;

location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass   http://127.0.0.1:8000;

}

我正在以root用户身份运行服务器。 但是似乎无法看到在80端口上运行的任何内容。


netstat -nlp | grep 80 返回什么? - Kyle Kelley
1
我之前使用的是CentOS-6,但它没有site-enabled等文件夹。因此,我需要删除/etc/nginx/conf.d/default.conf中的服务器条目,并在同一目录下添加nginx.conf文件。 - Netro
1个回答

3

诊断问题

请务必检查您的日志(通常为/var/log/nginx或其变体)。

检查是否有程序占用了80端口。

netstat -nlp | grep 80

Sites-enabled,端口占用

接下来,确保你已经在sites-enabled中启用了Django站点。如果你先前创建了旧的符号链接,请删除它们。

rm /etc/nginx/sites-enabled/django
ln -s /etc/nginx/sites-available/django /etc/nginx/sites-enabled/django

请仔细检查你的/etc/nginx/nginx.conf文件,确保它正在加载sites-enabled而不是其他默认设置。

http {
  ...
  include /etc/nginx/sites-enabled/*;
}

在进行完所有操作后,请关闭并重新启动nginx服务。
可以使用命令service nginx restart 或者 service nginx stop && service nginx start来实现。

netstat -nlp | grep 80 告诉我 nginx 正在监听端口 80(当我没有将其设置为端口 80 时)。0.0.0.0:80。这正常吗? - user1261499
听起来好像有另一个配置比你设置的优先级更高。在 /etc/nginx/nginx.conf 中查找罪魁祸首,以及 sites-enabled 中多余的站点。 - Kyle Kelley
只存在"default"。在nginx.conf上没有其他正在被监听的端口,只有80端口。 - user1261499
我修复了多余的罪犯,所以现在正式没有其他监听端口80的nginx.conf。但我仍然无法通过欢迎屏幕。 - user1261499
你也重新启动了吗?service nginx restart - Kyle Kelley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接