該過程位於centos的docker容器中進行
django版本2.1
參考鏈接
如何配置nginx+uwsgi+django?
django文檔,如何使用uwsgi進行配置
安裝環境
yum -y install python36
yum -y install gcc
yum -y install python36-devel
安裝uwsgi
pip3 install uwsgi
測試uwsgi是否安裝完成
uwsgi --version
簡單測試
創建test.py 文件,內容為
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"] # python3
#return ["Hello World"] # python2
- start_response 是wsgi中規定的header的內容
- 之后返回的是主體內容
安裝git
yum -y install git
拷貝要部署的項目
git clone [項目鏈接]
使用uwsgi 部署
在一個合適的地方配置uwsig.ini用作配置文件
筆者將uwsgi.ini 放在了django項目同名目錄的內層
文件結構如下
+ mysite
++ mysite
--- __init__.py
--- __pycache__
--- setting.py
--- urls.py
--- uwsgi.ini
--- uwsgi.pid
--- wsgi.py
++ app1
++ app2
其中 uwsgi.ini的配置信息如下
[uwsgi]
# 項目目錄,django項目同名文件夾外文件地址
chdir = /home/mysite
# 此處填這個mysite.wsgi將mysite改成項目名稱即可,它會自動前往wsgi.py 找尋
modul = mysite.wsgi
# 作為主進程,其他為子進程
master = true
# 地址端口
http = 127.0.0.1:80
# 日志輸出位置
daemonize = /home/mysite.log
# sock文件,目前未知用處
socket = /home/uwsgi.sock
# 運行的pid存儲位置
pidfile = uwsgi.pid
此處[uwsgi] 的頭必須有,用於識別配置
在uwsgi.pid中僅有一個數字作為pid(進程號)
如
1149
uwsgi 無法通過kill pid停止,其會自動重啟
必須通過其提供的停止命令
uwsgi 使用
啟動
uwsgi --ini uwsgi
停止
uwsgi stop uwsgi.pid
此處 uwsgi.pid 僅存儲了該進程運行的pid
通過ps -aux| grep uwsgi 可以查看
會被存儲在uwsgi.pid
重啟
uwsgi --stop uwsgi.pid