uwsgi搭配nginx部署flask專案
阿新 • • 發佈:2021-12-08
uwsgi搭配nginx部署flask專案
概念
wsgi web應用程式之間的介面。它的作用就像是橋樑,連線在web伺服器和web應用框架之間。
uwsgi 是一種傳輸協議,用於定義傳輸資訊的型別。
uWSGI 是實現了uwsgi協議WSGI的web伺服器。
安裝uWSGI
pip install uwsgi
部署
準備flask程式,例如:flask_app.py
from flask import Flask app = Flask(__name__) @app.route("/") def index(): return 'hello world' if __name__ == '__main__': app.run()
在專案的目錄建立一個uwsgi的配置檔案,例如:uwsgi.ini
[uwsgi] # 配合nginx使用 socket = 127.0.0.1:8000 # 專案路徑 /root/flask_test chdir = 自己專案路徑 # wsgi檔案 flask_app就是flask啟動檔案去掉字尾名 app是flask_app.py裡面的Flask物件 module = flask_app:app # 指定工作程序 processes = 4 # 主程序 master = true # 每個工作程序有2個執行緒 threads = 2 # 指的後臺啟動 日誌輸出的地方 daemonize = uwsgi.log # 儲存主程序的程序號 pidfile = uwsgi.pid # 虛擬環境環境路徑 virtualenv = /root/.virtualenvs/test
然後配置Nginx,找到Nginx的配置檔案nginx.conf,在http塊下加上下面程式碼
server {
# 監聽埠
listen 80;
# 監聽ip 換成伺服器公網IP
server_name 127.0.0.1;
# 動態請求
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
}
# 靜態請求
location /static {
alias /root/flask_test/static;
}
}
啟動uWSGI
uwsgi --ini uwsgi.ini
uwsgi重啟
uwsgi --reload uwsgi.pid
uwsgi停止
uwsgi --stop uwsgi.pid