该过程位于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