傳統 Apache + mod_wsgi 僅支持 32 位 Python,限制記憶體使用。現代 Python Web 部署推薦 Nginx + uWSGI 架構,完美支持 64 位 Python,性能更優。
Client → Nginx (靜態文件/反向代理) → uWSGI (應用服務器) → Flask (Web 框架)
| 組件 | 角色 | 優勢 |
|---|---|---|
| Nginx | 高性能反向代理、靜態資源服務 | 事件驅動、高併發、低記憶體 |
| uWSGI | Python 應用服務器,實現 WSGI 協議 | 進程管理、多線程、熱重載、監控 |
| Flask | 輕量級 Web 框架 | 靈活、擴展豐富、適合微服務 |
server {
listen 80;
server_name example.com;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000; # uWSGI 監聽端口
}
location /static {
alias /path/to/app/static; # 直接服務靜態文件
}
}
[uwsgi]
module = wsgi:app # 入口文件:Flask實例
master = true
processes = 4 # 工作進程數
socket = 127.0.0.1:8000 # 與 Nginx 通訊
chmod-socket = 660
vacuum = true
die-on-term = true
# 生產環境建議使用 systemd 或 Supervisor 管理
uwsgi --ini uwsgi.ini
Nginx + uWSGI + Flask 是目前 Python Web 生產環境的主流選擇,原生支持 64 位 Python,充分利用多核 CPU,配合虛擬環境隔離依賴,構建高性能、可維護的 Web 服務。