使用 uwsgi 和 nginx 运行 Flask 应用程序
Posted
技术标签:
【中文标题】使用 uwsgi 和 nginx 运行 Flask 应用程序【英文标题】:Running Flask app with uwsgi and nginx 【发布时间】:2016-01-19 17:07:51 【问题描述】:我正在关注配置 nginx uwsgi 以服务于烧瓶应用程序的数字海洋教程。 Digital Ocean Tuttorial link 我已经为启动我的应用程序提供了服务。但是当我运行它时,我得到以下状态
进程:726 ExecStart=/home/user/app/my_project/venv/bin/uwsgi --ini my_project.ini (code=exited, status=217/USER)
myproject.ini 包含运行 uwsgi 的配置
[uwsgi]
module = wsgi
master = true
processes = 5
socket = myproject.sock
chmod-socket = 660
vacuum = true
die-on-term = true
我能够在端口 8000 上使用 uswgi 运行应用程序,但无法将请求从 nginx 重定向到 uwsgi。
nginx的配置是:
server
listen 80;
server_name my_ip;
location /
include uwsgi_params;
uwsgi_pass unix:/home/user/app/my_project/myproject.sock;
【问题讨论】:
请同时发布您的 nginx 设置(服务器块)。 我看到两个问题,socket 应该是两个地方的完整路径(uwsgi 和 nginx 配置),现在你在这里有不同的值。或者可能 uwsgi 有本地路径,然后检查你对 uwsgi 进程正在使用的用户的权限,他应该对文件 myproject.sock 有 W 权限 我已经通过sudo usermod -a -G user nginx
将nginx 添加到用户组,然后我通过chmod 710 /home/user/app/my_project
使套接字可写。 myproject.ini 在此文件夹中。
【参考方案1】:
我发现是权限问题,socket权限应该是666。
【讨论】:
以上是关于使用 uwsgi 和 nginx 运行 Flask 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
python服务器环境搭建Flask,uwsgi和nginx