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