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收到請求後通過代理轉發到後端伺服器上