nginx - 502 错误网关 ubuntu 14.04 aws ec2 django 项目 + gunicorn

nginx - 502 错误网关 ubuntu 14.04 aws ec2 django 项目 + gunicorn

我正在尝试在 aws ec2 实例上启动并运行我的 django 项目。我正在使用 gunicorn 和 nginx,但我不太确定如何解决这个问题。我已经花了几个小时,包括查看这个网站上的其他帖子……但我仍然卡住了。以下是错误的原因:除了 502 Bad Gateway 之外,我的 nginx 错误日志还不断返回以下内容:

2015/07/17 08:32:32 [error] 8049#0: *18 connect() failed (111: Connection refused) while connecting to upstream, client: ip.ip.ip.ip, server: ip.ip.ip.ip, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8001/", host: "ec2-numbers.us-west-1.compute.amazonaws.com"

/etc/nginx/sites-available/at_api.conf看起来像这样(这个缩进可以吗?):

server {
listen 80;
server_name ip.ip.ip.ip;
access_log /var/log/nginx/site_access.log;
error_log /var/log/nginx/site_error.log;
location /static/ {
alias /home/ubuntu/static/;
}
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
}
}

这是我第一次在 ec2 上设置我的 django 项目...所以我不太确定这是否是正确的做法。有什么建议吗?PS 我看过另一篇类似的帖子,说php-fpm配置不正确,但我使用的是 django,所以我没有使用任何 php。

編輯:我的at_api/gunicorn.conf.py

proc_name = "at_api"
bind = '127.0.0.1:8001'
loglevel = "error"
workers = 2

编辑2:Netstat

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      8463/nginx: worker
tcp6       0      0 :::22                   :::*                    LISTEN      -
udp        0      0 0.0.0.0:68              0.0.0.0:*                           -
udp        0      0 0.0.0.0:10524           0.0.0.0:*                           -
udp6       0      0 :::21956                :::*                                -
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name    Path
unix  2      [ ACC ]     STREAM     LISTENING     8754     -                   /var/run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     52566    -                   /var/run/supervisor.sock.8446
unix  2      [ ACC ]     STREAM     LISTENING     6691     -                   @/com/ubuntu/upstart
unix  2      [ ACC ]     STREAM     LISTENING     9075     -                   /var/run/acpid.socket
unix  2      [ ACC ]     STREAM     LISTENING     35450    -                   /var/run/postgresql/.s.PGSQL.5432
unix  2      [ ACC ]     SEQPACKET  LISTENING     14550    -                   /run/udev/control

答案1

Connection refused意味着你的gunicorn软件没有监听8001你在 nginx 中配置的端口。你必须检查你的gunicorn配置。

相关内容