前言
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