Flask + uWSGI 項目部署流程

前言

uWSGI是一個全功能的HTTP服務器,實現了WSGI協議、uwsgi協議、http協議等。它要做的就是把HTTP協議轉化成語言支持的網絡協議。比如把HTTP協議轉化成WSGI協議,讓Python可以直接使用。

uWSGI的特點:
1.內存佔用低
2.單節點服務器的簡易部署
3.輕量級,好部署

1、項目結構

在這裏插入圖片描述

2、安裝配置

uWSGI 安裝:pip install uwsgi
在項目根目錄下新建 uwsgi.ini 文件

[uwsgi]
# 地址端口
http = 0.0.0.0:5200
# 項目路徑
chdir = /home/project/flask/UploadFiles
# 項目啓動文件
wsgi-file = manage.py
# 項目需要調用的啓動類
callable = app
# 進程線程設置
processes = 2
threads = 10
# 日誌文件
daemonize = logs/uwsgi.log
# 啓動的環境路徑
home = /home/.virtualenvs/flaskweb
# 保存主進程pid文件
pidfile = uwsgi.pid
# 是否需要主進程
master = true

注意:
1.如果只用uwsgi做服務,地址端口就用-http,不能用-socket ,否則會報 invalid request block size: 21573 (max 4096)…skip 錯誤;如需要配合 nginx 使用,改爲 stocket=5200;
2.日誌目錄(logs)需要提前新建好,如目錄不存在,日誌文件不會生成;

3、啓動 / 重啓 / 停止

在項目根目錄下執行命令

啓動:uwsgi --ini uwsgi.ini

重啓:uwsgi --reload uwsgi.pid

停止:uwsgi --stop uwsgi.pid

注意:
uWSGI 通過 uwsgi.ini 啓動後會在相同目錄下生成一個 uwsgi.pid 的文件,裏面只有一行內容是 uWSGI 的主進程的進程號。
重啓命令無法在uwsgi停止後執行,只能在它運行期間執行重啓,否則報錯。

kill 全部 uwsgi ini 進程:killall -s INT uwsgi
查看 uwsgi 有關的進程 :ps -ef |grep uwsgi

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章