Python3 基於 Nginx 部署 Flask 專案
阿新 • • 發佈:2019-02-05
很早之前就寫過一篇 Python3 基於 Nginx 部署 Django 專案 的文章,一直沒有釋出出來,這次部署 Flask 專案的時候用到了很多之前 Django 的東西,所有乾脆同時將這兩篇釋出。
很多細節的內容我就不寫了,只把 Nginx 配置和 uWSGI 配置給出即可,因為原理是一毛一樣的。其中有一點不同的是,Django 中有 wsgi.py 檔案,所以我們不需要指定專案的根目錄、主程式、python直譯器路徑等相關內容。但是 Flask 是輕量級的 web 伺服器,沒有這些東西,所以我們在配置 Nginx 和 uWSGI 的時候需要指定這些內容。
Nginx 配置:
# Flask dataV api server { listen 5050; server_name data.migelab.com; charset utf-8; client_max_body_size 75M; location / { include uwsgi_params; # 匯入uwsgi配置 uwsgi_pass 127.0.0.1:5555; # 轉發埠,需要和uwsgi配置當中的監聽埠一致 uwsgi_param UWSGI_PYTHON /usr/bin/python3; # Python直譯器所在的路徑,如果有虛擬環境可將路徑設定為虛擬環境 uwsgi_param UWSGI_CHDIR /opt/dataV; # 專案根目錄 uwsgi_param UWSGI_SCRIPT run:app; # 專案的主程式,比如你測試用run.py檔案,檔案中app = Flask(__name__),那麼這裡就填run:app } }
uWSGI 配置:
[uwsgi]
# uWSGI 的監聽埠
socket = 127.0.0.1:5555
# 專案根目錄
chdir = /opt/dataV
# Flask 專案的啟動檔案
wsgi-file = run.py
# 程式內啟用的application變數名
callable = app
# 程序數量
processes = 4
vacuum = true
master = true
啟動 uWSGI 伺服器:
uwsgi --ini /opt/dataV/uwsgi.ini &