使用 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

用uWSGI和Nginx部署Flask项目

使用virtualenv, uwsgi, nginx来布署flask

Ubuntu+Nginx+uWSGI+Flask应用

使用Nginx和uwsgi部署Flask项目

nginx+uwsgi+flask搭建后怎么访问.py文件