前言
哇,之前写一个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__)