最近上线了洞见微信聚合平台需要部署,以前部署项目使用的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 |
```