python 部署 flask---搭建 flask+gunicorn+nginx後臺服務

前言

解決flask部署服務後臺不穩定,容易down的問題。在Linux 平臺下直接nohub啓動flask服務雖然可以在後臺運行,但極其不穩定,容易掛掉。如何保持後臺的服務進程穩定運行是一件非常重要的事情。而本文的一個解決方法是flask+gunicorn+nginx。flask和gunicorn都是python下的輕量級的web開發服務。flask實現了web路由方法,gunicorn負責啓動監聽flask服務,而nginx是做一個反向代理。若您有更好的解決方案望告知!!!

WebpaltformWSGINginxWeb_client4.後臺返回3.到達後臺5.返回給Nginx2.分發6.客戶端接收1 .請求WebpaltformWSGINginxWeb_client

1.部署平臺

1.1. 系統:Centos 7.7
1.2. 開發語言:python3.6
1.3. 相關工具:falsk, gunicorn, nginx

2.各功能簡介

2.1 flask 介紹

  • 簡介

flask是一個基於python 的Web 微框架
Python的著名Web框架有Django、Pyramid、Tornado、webpy、Zope等

Flask由兩個主要依賴組成(提供路由、調試和Web服務器網關接口的Werkzeug和提供模板的Jinja2)

  • 安裝
  • pip install flask

  • 例子

創建文件demo.py, 代碼如下
from flask import Flask
app = Flask(__name__)
 
@app.route('/')
def test():
    return 'Falsk demo!'
 
if __name__ == '__main__':
    app.run(host="0.0.0.0", port=8080, debug=True)

效果

2.2 gunicorn介紹

  • 簡介

gunicorn 是一個WSGI容器

Web框架致力於如何生成HTML代碼,而Web服務器用於處理和響應HTTP請求。Web框架和Web服務器之間的通信,需要一套雙方都遵守的接口協議。WSGI協議就是用來統一這兩者的接口的。

  • 安裝

pip install gunicorn
  • 例子

$ gunicorn --worker=3 demo:app -b 0.0.0.0:8080

在centos 下使用 nohub命令執行
nohup是一個 Linux 命令,和 & 一起使用,根目錄生成一個 nohup.out文件記錄所有的 log 信息

$ nohup gunicorn --worker=3 demo:app -b 0.0.0.0:8080&

在這裏插入圖片描述

2.3 nginx 介紹

  • 簡介

Nginx是一款輕量級的Web服務器、反向代理服務器,由於它的內存佔用少,啓動極快,高併發能力強

  • 安裝

安裝有兩種方式直接安裝或者源碼編譯安裝

#省略部分過程,如添加nginx 源
$ sudo yum install epel-release
$ sudo yum install nginx
  • 例子

#啓動 ,ngnix 目錄下(也有別的啓動方法)
$ ./niginx

在這裏插入圖片描述

如果要實現對gunicorn 的反向代理需要設置 nginx.conf

在這裏插入圖片描述

Ven 環境安裝參考

https://blog.csdn.net/wengzilai/article/details/78722626

如有不足請批評指正!!!

參考文獻

[1] https://www.jianshu.com/p/52d8e3deaa16
[2] https://segmentfault.com/a/1190000018109309
[3] https://www.zhihu.com/question/21888077

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章