Amazon web services 502使用Nginx、Gunicorn和Flask的坏网关

Amazon web services 502使用Nginx、Gunicorn和Flask的坏网关,amazon-web-services,nginx,flask,gunicorn,Amazon Web Services,Nginx,Flask,Gunicorn,我正在学习将我的Flask应用程序部署到Ubuntu AWS EC2实例上,并遵循以下步骤。我现在和现在都遇到了最后一个问题:我启动了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

我正在学习将我的Flask应用程序部署到Ubuntu AWS EC2实例上,并遵循以下步骤。我现在和现在都遇到了最后一个问题:我启动了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连接到我的
project.sock
时遇到了错误,这是一个
502坏网关错误

以下是我的
/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错误日志的检查表明,它在尝试连接到我的
项目时遇到
权限被拒绝的
错误。sock

      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
,我在这里没有用到。我怀疑这显然是一个权限问题,所以我尝试了
chmod711/home/ubuntu/myproject/project
并重新启动nginx,但这导致了相同的
502错误网关


问题,但没有答案或注释。

这只是权限问题。在一个用户下运行的Nginx无法访问另一个用户拥有的unix套接字。我建议在同一用户下运行nginx服务器和gunicorn,这样nginx就可以毫无问题地访问gunicron创建的unix套接字
chmod 777
是一种临时解决方案,它可以显示只有在执行此命令后所述问题消失时才存在权限问题,但最好在同一用户下最初运行nginx和gunicorn。另外,最好指定unix套接字的完整路径,以避免“没有这样的文件或目录”可能出现的问题:
gunicorn--workers 3--bind

首先尝试使用777,看看这是否解决了问题。如果没有,我们将考虑其他选择