在開發過程當中,咱們通常直接用Python命令直接運行Flask程序。這樣的運行只適合咱們開發,方便咱們調試。一旦程序部署到線上,這樣運行的Flask程序性能會比較低。能夠採用uWSGI+Nginx進行部署。python
在部署以前,咱們得先了解幾個概念nginx
wsgi web應用程序之間的接口。它的做用就像是橋樑,鏈接在web服務器和web應用框架之間。web
uwsgi 是一種傳輸協議,用於定義傳輸信息的類型。flask
uWSGI 是實現了uwsgi協議WSGI的web服務器。服務器
首先準備一個flask程序,名字run.pyapp
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return '部署'
if __name__ == '__main__':
app.run()
複製代碼
安裝uWSGI框架
pip install uwsgi
複製代碼
在項目的目錄建立一個uwsgi的配置文件socket
[uwsgi]
#配合nginx使用
socket = 127.0.0.1:8000
#項目路徑 /Users/xiaoyuan/Desktop/flask_test
chdir = 本身項目路徑
#wsgi文件 run就是flask啓動文件去掉後綴名 app是run.py裏面的Flask對象
module = run:app
#指定工做進程
processes = 4
#主進程
master = true
#每一個工做進程有2個線程
threads = 2
#指的後臺啓動 日誌輸出的地方
daemonize = uwsgi.log
#保存主進程的進程號
pidfile = uwsgi.pid
#虛擬環境環境路徑
virtualenv = /Users/xiaoyuan/.virtualenvs/flask_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 /Users/xiaoyuan/Desktop/flask_test/static;
}
}
複製代碼
啓動uWSGIspa
uwsgi --ini uwsgi.ini
複製代碼
啓動Nginx
/etc/init.d/nginx start
複製代碼
而後訪問Nginx監聽的IP,因爲我在本地部署,就直接訪問http://127.0.0.1:80/
uwsgi --reload uwsgi.pid
複製代碼
uwsgi --stop uwsgi.pid
複製代碼
歡迎關注個人公衆號: