502 错误:Bad Gateway [nginx/1.4.7]

0 投票
2 回答
1078 浏览
提问于 2025-04-18 07:54

我正在配置一个django(1.6.5)项目,使用gunicorn和nginx服务器。这个项目在django自带的基本服务器上运行得很好,命令是 python manage.py runserver。后来,我用gunicorn绑定了一个地址,命令是 gunicorn myproject.wsgi:application --bind=127.0.0.1:8001。然后我在 /etc/nginx/nginx.conf 文件中进行了配置。当我重启nginx服务器,并在浏览器中输入 localhost:8080 时,出现了 502 Bad Gateway 的错误。这是我哪里出错了呢?

这是我的 nginx.conf 配置代码:

server {
listen 8080;
server_name localhost;
access_log  /var/log/nginx/example.log;

location / {
    proxy_pass http://127.0.0.1:8001;
    }
  } 

更新:

在错误日志文件中:error_log /var/log/nginx/example.error.log;

我看到以下内容:

2014/05/29 13:13:08 [crit] 6701#0: *1 connect() to 0.0.0.0:8001 failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "http://0.0.0.0:8001/", host: "localhost:8080"

任何帮助都将不胜感激。

2 个回答

0

它显然是在期待一个 HTTP(而不是 WSGI)处理程序在 8001 端口上。你可以在这里了解更多关于 Nginx 和 WSGI 配置的内容:http://uwsgi-docs.readthedocs.org/en/latest/Nginx.html

1

我通过把我现在在 Fedora 系统上使用的用户名设置为 nginx 的工作用户,解决了之前的问题。我在 /etc/nginx 目录下的 nginx.conf 文件的顶部找到了这个用户。我现在在 Linux 环境中以 user 的身份工作,然后把 nginx.conf 文件里的用户名 nginx 替换成了 user。就这样,我的问题解决了。

撰写回答