Flask+Gunicorn+Nginx配置多個(gè)app

前兩天在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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容