1. 程式人生 > 其它 >uwsgi搭配nginx部署flask專案

uwsgi搭配nginx部署flask專案

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