Amazon web services 502使用Nginx、Gunicorn和Flask的坏网关
我正在学习将我的Flask应用程序部署到Ubuntu AWS EC2实例上,并遵循以下步骤。我现在和现在都遇到了最后一个问题:我启动了Gunicorn,并使用以下命令工作: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
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,看看这是否解决了问题。如果没有,我们将考虑其他选择