04 Python Flask 教學10 所有文章

【Python 教學】uWSGI 配置參數講解

uwsgi 配置教學講解_Max行銷誌

前言

前面兩集我們介紹了 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 時就比較不會沒有頭緒:

其他相關 uWSGI 文章推薦

關於 Flask 教學的延伸閱讀:

▍關於 Flask 教學系列目錄:

▍或許你會有興趣的,Flask 相關實作:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *