【问题标题】:502 Bad Gateway Using Nginx, Gunicorn and Flask502 Bad Gateway 使用 Nginx、Gunicorn 和 Flask
【发布时间】:2018-08-03 20:11:55
【问题描述】:

我正在学习将我的 Flask 应用程序部署到 Ubuntu AWS EC2 实例上,并且正在关注 Digital Ocean tutorial。我现在遇到了最后一个问题:我的 Gunicorn 已启动并使用以下命令工作:gunicorn --workers 3 --bind unix:project.sock -m 007 wsgi:app 创建 3 个工作线程和一个名为 project.sock 的套接字。

[2018-02-23 17:14:49 +0000]  [INFO] Booting worker with pid: X
[2018-02-23 17:14:49 +0000] [INFO] Booting worker with pid: X
[2018-02-23 17:14:49 +0000]  [INFO] Booting worker with pid: X
Connection initialized.
Connection initialized.
Connection initialized.

但我在尝试让 Nginx 从 Gunicorn 连接到我的 project.sock 时遇到错误 - a 502 Bad Gateway error

这是我的/etc/nginx/sites-available/project 配置:

server {
    listen 80;
    server_name MY_SERVER_DNS;

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/ubuntu/flaskapp_dev/my_project/project.sock;
    }
}

检查 Nginx 错误日志显示它在尝试连接到我的 project.sock 时遇到 Permission denied 错误:

      2018/02/23 17:26:46 [crit] 10822#10822: *4 connect() to unix:/home/ubuntu/myproject/myproject/myproject.sock failed 
(13: Permission denied) while connecting to upstream, 
        client: CLIENT_IP, server: MY_SERVER_DNS, 
        request: "GET / HTTP/1.1", 
    upstream: "http://unix:/home/ubuntu/myproject/myproject/project.sock:/", host: "MY_SERVER_DNS"

我知道有很多关于这个问题的 SO 帖子,但我注意到其中大部分都围绕 uwsgi,我在这里没有使用。我怀疑这显然是权限问题,所以我尝试chmod 711 /home/ubuntu/myproject/project 并重新启动nginx,但结果相同502 Bad Gateway error

closest SO post to my issue appears to be this one,但它没有答案或 cmets。

【问题讨论】:

  • 首先尝试 777 看看是否能解决问题。如果没有,那么我们看看其他选项

标签: amazon-web-services nginx flask gunicorn


【解决方案1】:

这只是权限问题。在一个用户下运行的 Nginx 无法访问另一个用户拥有的 unix 套接字。我建议在同一用户下运行 nginx 服务器和 gunicorn,这样由 gunicron 创建的 unix 套接字将被 nginx 访问而没有任何问题。 chmod 777 是一个临时解决方案,如果在执行此命令后描述的问题已经消失,则可以表明只有权限问题,但最好在同一用户下最初运行 nginx 和 gunicorn。此外,最好指定 unix socket 的完整路径以避免“没有这样的文件或目录”可能的问题:gunicorn --workers 3 --bind <full_path_to_unix_socket_to_be_created>

【讨论】:

    猜你喜欢
    • 2020-11-28
    • 2023-03-20
    • 2020-09-01
    • 2020-12-14
    • 1970-01-01
    • 2016-04-20
    • 2020-06-12
    • 2017-04-13
    • 2016-01-04
    相关资源
    最近更新 更多