前言
哇,之前写一个flask项目的时候,一直打算部署,看了不少的教程,最后选择了flask+uwsgi+nginx的搭配,然后在Ubuntu server里尝试上线,但是就是不行,一直报错502,一直找不到问题所在,后来在家里的一台烂liunx笔记本尝试上线(一样是Ubuntu),这已经距离我的flask项目写好过了几个月了,然后一次就成功了,一脸蒙蔽,这个教程并没有太多的对于uwsgi和nginx的性能优化之类的,仅仅保留了最基本的配置。不会对配置做过多的解释,如果想知道配置文件的解释,可以自己谷歌或者百度查看uwsgi和nginx的配置文件解释。仅仅做一个备忘录。
配置
nginx配置
nginx配置文件路径在/etc/nginx
nginx配置文件如下:
1 | server{ |
server_name为服务器地址,这里因为是本地上线,所以填了本地的地址,这里一个很主要的和uwsgi交互的地方在与uwsgi_pass这个配置选项,链接uwsgi的socket地址,生成这个socket的路径会在uwsgi的配置文件里配置。可以看下面的uwsgi配置。
这个文件的名字是nginx.conf,尽量不要修改,我们将这个文件放在/etc/nginx/site-enabled/里,然后修改一下/etc/nginx/nginx.conf里的include /etc/nginx/sites-enabled/*.conf这一项。

然后我们检查一下nginx的配置文件正确性,输入命令sudo nginx -t,如果显示:

就表示nginx配置文件配置正确
uwsgi 配置
建议将uwsgi配置文件放在项目根目录下,后缀为.ini
uwsgi配置
1 | [uwsgi] |
wsgi.file文件为flask的服务器入口,比如哪个文件有像这样的app.run(debug=True, port=9090, host="0.0.0.0")(其实就是服务器启动),socket的保存路径就是nginx配置文件中uwsgi_pass的路径,这个路径一定要对。chomd-socket把socket的权限改写成所有人可写可读。
callable选项为flask中的
app = Flask(__name__)