用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)文章
Python BeautifulReport可視化報告代碼實例
這篇文章主要介紹了Python BeautifulReport可視化報告代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-04-04
Python PIL庫讀取設(shè)置圖像的像素內(nèi)容方法示例
這篇文章主要為大家介紹了使用Python PIL庫Image模塊中的getpixel和putpixel方法讀取設(shè)置圖像的像素內(nèi)容實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01
使用Matplotlib創(chuàng)建基本圖表的詳細指南
Matplotlib 是一個功能強大的 Python 庫,用于創(chuàng)建各種類型的圖表和可視化,在本文中,我們將提供一個完整的指南,介紹如何使用 Matplotlib 創(chuàng)建基本的圖表,包括折線圖、散點圖、柱狀圖和餅圖,感興趣的小伙伴跟著小編一起來看看吧2024-05-05
scrapy爬蟲:scrapy.FormRequest中formdata參數(shù)詳解
這篇文章主要介紹了scrapy爬蟲:scrapy.FormRequest中formdata參數(shù)詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Python實現(xiàn)批量獲取文件夾內(nèi)文件名并重命名
這篇文章主要為大家詳細介紹了Python如何批量獲取文件夾內(nèi)文件名及重命名文件,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2025-02-02

