最简单的nginx+uwsgi部署django说明
- 安装uwsgi
python -m pip install uwsgi
- 新建uwsgi.ini
最简配置如下
[uwsgi]
chdir=/Users/fangliangsheng/Documents/git/mysite
module=mysite.wsgi:application
socket=/Users/fangliangsheng/Documents/git/mysite/mysite.sock
- chdir
项目的目录 - module
相对于项目目录的wsgi文件 - socket
指定wsgi启动后的socket文件,nginx就是通过这个sock文件与wsgi通信的
- 启动uwsgi
uwsgi --ini uwsgi.ini
启动成功后会看到输出
WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x7fd51e006090 pid: 73237 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI worker 1 (and the only) (pid: 73237, cores: 1)
如果看到ModuleNotFoundError
、unable to load
的字样,请检查uwsgi.ini中的路径是否有误
- 配置Nginx
server {
listen 8080;
#...
location /polls {
uwsgi_pass unix:///Users/fangliangsheng/Documents/git/mysite/mysite.sock;
include /usr/local/etc/nginx/uwsgi_params;
}
}
- uwsgi_pass
为uwsgi.ini中配置的sock文件路径 - include
一般nginx默认带了uwsgi_params这个文件,如果没有到这个地址获取
https://github.com/nginx/nginx/blob/master/conf/uwsgi_params
记得重启Nginx哦
- 测试
curl -s "http://127.0.0.1:8080/polls/question/?page=1&size=5"
{"count": 1, "data": [{"question": "喜欢的语言", "pub_date": "2019-12-30T09:00:00Z"}]}