Gunicorn+Nginx部署Flask项目

最近上线了洞见微信聚合平台需要部署,以前部署项目使用的uwsgi+nginx,听说gunicorn使用起来挺方便的,记录下部署过程。

生产环境不比开发环境,要适应性能强大的应用服务器web服务器,在开发环境中,使用Flask自带的wsgi不能满足生产环境的需求,需要满足高性能的要求。这里不得不说,1核2g的阿里云服务器配置三个web项目,每天将近500的访问量不带卡的。不吹牛批了,开始正式记录。

0X01 Flask配置

其实Flask配置没有什么好说的,需要将debug改为True

0x02 Gunicorn配置

首先安装Gunicorn

1
pip install gunicorn

Gunicorn配置也非常方便,这里记录下常用的一条配置命令

在app.py同级目录下运行

1
gunicorn -b 0.0.0.0 -p 5000 -w 10 -k gevent -D app:app

-b: 绑定IP
-p: 绑定端口
-w: worke数量
-k: 运行模式
-D: 开启守护进程
app:app: 启动文件下的app实例

0x03 ngixn配置

nginx配置需要将gunicorn绑定的端口进行消息转发就可以了

1
server {
2
        listen xx;
3
        server_name xxx;
4
        location / {
5
6
                proxy_pass http://127.0.0.1:5000;
7
                proxy_set_header Host $host;
8
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
9
                proxy_set_header X-Real-IP $remote_addr;
10
                proxy_set_header REMOTE-HOST $remote_addr;
11
                proxy_set_header referer $http_referer;
12
            }
13
        }
14
`

同时记录下nginx的几条配置命令

1
nginx -t //检查配置文件是否合法
2
nginx -s reload //重启nginx

```