Nginx 和 uWSGI 部署 Flask 应用

时间:2021-09-27 20:32:09

Nginx 和 uWSGI 部署 Flask 应用

不管是windows或者linux,首先我默认你已经了安装好了Nginx和uwsgi,这里要谈论的是如何最简单的部署Flask。

项目的manage.py

#!/usr/bin/env python3
# coding:utf-8
from flask.ext.script import Manager
config = 'development'
application = create_app(config)
manager = Manager(application)
...
if __name__ == '__main__':
manager.run()

新建uwsgi.ini文件

[uwsgi]
socket = 127.0.0.1:5000
processes = 4
threads = 2
module = manage
callable = application

配置参数说明:

module:加载指定的python WSGI模块
callable:在收到请求时,uWSGI加载的模块中哪个变量将被调用,默认是名字为“application”的变量.也是create_app的实例

配置nginx的反向代理

nginx 的配置文件时位于 /etc/nginx/sites-available 目录下的 default 文件,我们复制一份做修改,这里同样给一份最简单的配置:

server {
listen 80;

server_name 127.0.0.1;

# access_log logs/access.log compression;

#默认请求
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000;
}
}

nginx启动后,Flask项目的启动方式:

启动
uwsgi uwsgi.ini

停止

如果还在同一个shell中,我们可以直接按 Ctrl + C
如果不在同一个shell中,可以这样结束掉 killall -9 uwsgi

启动成功之后就可以访问我们的Web应用了,默认地址是:http://127.0.0.1:5000 (这个地址和端口号是在我们的Flask应用中配配置的,这里不做介绍)。

需要特别说明的:

如果出现 invalid request block size: 21573 (max 4096)…skip这个错误,请将ini配置中的 socket 改为 http