文章目錄
前言

前面兩集我們介紹了 Flask run 之後,會發生了什麼事?Flask 自帶的 Web Server 只適合測試環境使用,那正式環境怎麼辦?什麼是 WSGI、uWSGI 和 Nginx?有興趣的朋友可以參考之前的文章:
那這集要來介紹 uWSGI 還有哪些好用的常用配置參數!
如果還沒安裝 uWSGI 的朋友,可以透過以下指令
$ pip install uwsgi
ㄧ. 常用 uWSGI 配置介紹
uWSGI 支援的配置格式很多,像是 yaml、JSON、XML 或是 ini,而本篇將以 ini 格式為主,這份是我常用的 uwsgi 配置,使用 ini 的格式:
[uwsgi]
wsgi-file = main.py
callable = app
socket = :8001
chmod-socket = 660
master = true
processes = 4
threads = 2
vacuum = true
die-on-term = true
二. uWSGI 配置參數解釋
這份是參考 uWSGI 2.0文件中介紹的 uwsgi 配置參數詳細說明:
Things to know (best practices and “issues”) READ IT !!! — uWSGI 2.0 documentation
[uwsgi]
wsgi-file = main.py # 主要運行的 py 檔案
callable = app # flask 實例化後的命名
chdir = /opt/app # chdir 指定目錄位置
env = XXX=XXX # 新增環境變數
# 選擇協議方式,三選一即可
http = 0.0.0.0:5000 # 此方法外部也可以使用 5000 ports 連線
http-socekt = 0.0.0.0:5001
socket = :3031
chmod-socket = 660
pidfile = xxx # pid 文件位置
venv = xxx # 虛擬環境位置
logto = /var/log/www.log
workers = 4 # 一般為 CPU 數 * 2
threads = 2
enable-threads = true
max-requests = 100000
master = true # 開啟一個主進程,管理其他進程
buffer-size = 65535 # header 的 buffer 大小,默認是 4096 字節,最大值是 65535 字節
vacuum = true # 當服務器退出的時候自動清理環境,刪除unix socket文件和pid文件
# 建議不要以 root 權限運行 uWSGI,這邊設定為 www-data
uid=www-data
gid=www-data
# 靜態文件
check-static = /var/static
基本上 uWSGI 的配置參數講解就到這邊告一個段落囉!有任何問題可以在以下留言~
學會 uWSGI 的配置後,接下來就是實戰啦!
Flask 部署上個人是都使用 Docker 因為真的很方便!但新手建議可以先從不使用 Docker 部署開始學習,然後再使用 Docker 部署,這樣使用 Docker 時,在 debug 時就比較不會沒有頭緒:
- (不使用 Docker) 實作 GCP 部署 Flask + Nginx + uWSGI
- (使用 Docker ) 實作 Docker-compose (Flask+Nginx+PostgreSQL)
其他相關 uWSGI 文章推薦
關於 Flask 教學的延伸閱讀:
▍關於 Flask 教學系列目錄:
▍或許你會有興趣的,Flask 相關實作: