用uWSGI和Nginx部署Flask項(xiàng)目的方法示例
概況
在開(kāi)發(fā)過(guò)程中,我們一般直接用Python命令直接運(yùn)行Flask程序。這樣的運(yùn)行只適合我們開(kāi)發(fā),方便我們調(diào)試。一旦程序部署到線上,這樣運(yùn)行的Flask程序性能會(huì)比較低??梢圆捎胾WSGI+Nginx進(jìn)行部署。
uWSGI
在部署之前,我們得先了解幾個(gè)概念
- wsgi web應(yīng)用程序之間的接口。它的作用就像是橋梁,連接在web服務(wù)器和web應(yīng)用框架之間。
- uwsgi 是一種傳輸協(xié)議,用于定義傳輸信息的類(lèi)型。
- uWSGI 是實(shí)現(xiàn)了uwsgi協(xié)議WSGI的web服務(wù)器。
部署
首先準(zhǔn)備一個(gè)flask程序,名字run.py
from flask import Flask app = Flask(__name__) @app.route("/") def index(): return '部署' if __name__ == '__main__': app.run()
安裝uWSGI
pip install uwsgi
在項(xiàng)目的目錄創(chuàng)建一個(gè)uwsgi的配置文件
[uwsgi] #配合nginx使用 socket = 127.0.0.1:8000 #項(xiàng)目路徑 /Users/xiaoyuan/Desktop/flask_test chdir = 自己項(xiàng)目路徑 #wsgi文件 run就是flask啟動(dòng)文件去掉后綴名 app是run.py里面的Flask對(duì)象 module = run:app #指定工作進(jìn)程 processes = 4 #主進(jìn)程 master = true #每個(gè)工作進(jìn)程有2個(gè)線程 threads = 2 #指的后臺(tái)啟動(dòng) 日志輸出的地方 daemonize = uwsgi.log #保存主進(jìn)程的進(jìn)程號(hào) pidfile = uwsgi.pid #虛擬環(huán)境環(huán)境路徑 virtualenv = /Users/xiaoyuan/.virtualenvs/flask_test
然后配置Nginx,找到Nginx的配置文件nginx.conf,在http塊下加上下面代碼
server { # 監(jiān)聽(tīng)端口 listen 80; # 監(jiān)聽(tīng)ip 換成服務(wù)器公網(wǎng)IP server_name 127.0.0.1; #動(dòng)態(tài)請(qǐng)求 location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; } #靜態(tài)請(qǐng)求 location /static { alias /Users/xiaoyuan/Desktop/flask_test/static; } }
啟動(dòng)
啟動(dòng)uWSGI
uwsgi --ini uwsgi.ini
啟動(dòng)Nginx
/etc/init.d/nginx start
然后訪問(wèn)Nginx監(jiān)聽(tīng)的IP,由于我在本地部署,就直接訪問(wèn)http://127.0.0.1:80/
其他命令
uwsgi重啟
uwsgi --reload uwsgi.pid
uwsgi停止
uwsgi --stop uwsgi.pid
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Win10系統(tǒng)下安裝編輯器之神(The?God?of?Editor)Vim并且構(gòu)建Python生態(tài)開(kāi)發(fā)環(huán)境過(guò)程(2
這篇文章主要介紹了Win10系統(tǒng)下安裝編輯器之神(The?God?of?Editor)Vim并且構(gòu)建Python生態(tài)開(kāi)發(fā)環(huán)境(2020年最新攻略),本次我們?cè)赪in10平臺(tái)構(gòu)建一套以Vim為核心的Python開(kāi)發(fā)環(huán)境,需要的朋友可以參考下2023-01-01Python使用pyautocad+openpyxl處理cad文件示例
這篇文章主要介紹了Python使用pyautocad+openpyxl處理cad文件,結(jié)合實(shí)例形式分析了Python使用pyautocad與openpyxl模塊讀寫(xiě)cad文件相關(guān)應(yīng)用操作技巧,需要的朋友可以參考下2019-07-07使用Keras中的ImageDataGenerator進(jìn)行批次讀圖方式
這篇文章主要介紹了使用Keras中的ImageDataGenerator進(jìn)行批次讀圖方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06wxPython事件驅(qū)動(dòng)實(shí)例詳解
這篇文章主要介紹了wxPython事件驅(qū)動(dòng)機(jī)制,以一個(gè)獲取當(dāng)前位置信息的實(shí)例形式講述了wxPython事件驅(qū)動(dòng)機(jī)制及其相關(guān)函數(shù)的用法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-09-09