前兩天在vps上面部署了自己的兩個(gè)flask應(yīng)用,搭建架構(gòu)為flask+gunicorn+nginx,在這邊做個(gè)備忘。查看原文
請(qǐng)自行安裝好nginx、gunicorn和flask的運(yùn)行環(huán)境,這里不再贅述
Nginx配置
修改nginx的配置
vi /etc/nginx/sites-available/default
//default
server {
listen 80;//監(jiān)聽80端口
server_name www.ikiyomi.cc;
access_log /root/web/logs/nginx_app.log;
//轉(zhuǎn)發(fā)第一個(gè)app的請(qǐng)求
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header host $http_host;
proxy_pass http://127.0.0.1:5000;
}
//轉(zhuǎn)發(fā)第二個(gè)app的請(qǐng)求
location /weixin {
proxy_pass http://127.0.0.1:5001;
}
}
測(cè)試配置文件是否產(chǎn)生錯(cuò)誤
nginx -t
開啟服務(wù)
service nginx start
Flask app配置
將兩個(gè)app運(yùn)行的端口與nginx定義的端口一致,本地運(yùn)行
//app_1
if __name__ == '__main__':
app.run(debug=False, port=5000)
# 127.0.0.1:5000
//app_2
if __name__ == '__main__':
app.run(debug=False, port=5001)
# 127.0.0.1:5001
Gunicorn配置
Gunicorn配置文件
//gunicorn_app1.conf
//配置方式相似,以app_1為例
# 綁定5000端口,與Flask端口一致
bind = "127.0.0.1:5000"
# 線程數(shù)
workers = 3
backlog = 2048
worker_class = "gevent"
# debug = True
proc_name = "gunicorn.pid"
pidfile = "/tmp/gunicorn.pid"
# logfile = "/root/wechat/logs/20161019.log"
accesslog = "/root/wechat_web/logs/gunicorn.log"
loglevel = "debug"
# 是否以守護(hù)進(jìn)程方式運(yùn)行
daemon = True
運(yùn)行Gunicorn
gunicorn -c gunicorn_app1.conf app_1:app
參數(shù)說(shuō)明:
- -c 以配置文件方式運(yùn)行
- app_1 文件名
- app app名
查看gunicorn守護(hù)進(jìn)程是否運(yùn)行
ps aux | grep gunicorn