1. 程式人生 > 實用技巧 >Flask_環境部署(十六)

Flask_環境部署(十六)

flask自帶的伺服器,無法滿足效能要求,我們這裡採用Gunicorn做wsgi容器,來部署flask程式並使用 Nginx 做前端代理實現分流、轉發、負載均衡,以及分擔伺服器的壓力。

Gunicorn

Gunicorn(綠色獨角獸)是一個Python WSGI的HTTP伺服器。從Ruby的獨角獸(Unicorn )專案移植。該Gunicorn伺服器與各種Web框架相容,實現非常簡單,輕量級的資源消耗。Gunicorn直接用命令啟動,不需要編寫配置檔案。

安裝gunicorn

pip install gunicorn

使用Gunicorn

安裝gunicorn成功後,通過命令列的方式可以檢視gunicorn的使用資訊。

gunicorn -h

常用引數:

  • -w:表示程序(worker)
  • -b:表示繫結ip地址和埠號(bind)
  • -D:表示以守護程序執行
  • --access-logfile:指定日誌檔案
$gunicorn -w 4 -b 127.0.0.1:5001 執行檔名稱:Flask程式例項名

Nginx

web開發中,部署方式大致類似。簡單來說,前端代理使用Nginx主要是為了實現分流、轉發、負載均衡,以及分擔伺服器的壓力。Nginx部署簡單,記憶體消耗少,成本低。Nginx既可以做正向代理,也可以做反向代理。

正向代理:請求經過代理伺服器從區域網發出,然後到達網際網路上的伺服器。

特點:服務端並不知道真正的客戶端是誰。

反向代理:請求從網際網路發出,先進入代理伺服器,再轉發給區域網內的伺服器。

特點:客戶端並不知道真正的服務端是誰。

區別:正向代理的物件是客戶端。反向代理的物件是服務端。

安裝&配置Nginx

https://www.cnblogs.com/testlearn/p/10423870.html

Flask &Gunicorn & Nginx 聯合使用

下圖為flask練手專案(https://www.cnblogs.com/testlearn/p/14136218.html)的目錄結構,且該專案所屬伺服器的IP為192.168.3.58

進入專案根目錄,使用下面命令啟動後端服務

gunicorn -w 4 -b 192.168.3.58:6000 book:app 

在另一臺伺服器上部署啟動nginx

修改nginx的配置檔案

重新載入配置 或 重啟nginx服務

通過客戶端訪問nginx設定的IP地址,nginx收到請求後通過代理轉發到後端伺服器上