如何配置nginx+uwsgi+django
1.安装uwsgi库
pip install uwsgi
2.django目录下建配置文件。
我的项目目录结构如下:
进入到apiManager(找项目中对应含有settings,urls)目录下,即含有wsgi.py的文件夹下,建一个djangoxxx_socket.xml文件。
我取名为djangomgr_socket.xml,命名随意。
djangomgr_socket.xml内容如下:
<uwsgi>
<socket>:8999</socket>
<chdir>/webroot/wjc/apimgr/</chdir>
<module>wsgi</module>
<processes>1</processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize>
</uwsgi>
注意:
1. chdir路径到项目根目录下(含有manage.py的那个目录)
2. socket端口号为nginx中需要访问的端口号
3. daemonize为运行日志,不填路径时,默认会在与djangomgr_socket.xml同路径下生成一个uwsgi.log,当然也可以自己指定路径
3. 配置nginx
nginx配置如下,配置完后测试一下并重启nginx。
测试nginx:
命令:nginx -t ——测试nginx配置文件是否有错
重启nginx:
命令:nginx -s reload(或 service nginx restart)
server {
listen 80;
server_name apimgr.myexist.cn;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8999;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css|woff|ttf|otf|eot|svg|less|scss|flv|json|map|swf|ogg|mp3|wav|html|zip|rar)$
{
root /webroot/wjc/apimgr/apimgr/templates/;
if (-f $request_filename) {
expires max;
break;
}
}
access_log /var/log/nginx/myexist/apimgr.myexist.cn.access.log;
error_log /var/log/nginx/myexist/apimgr.myexist.cn.error.log;
}
4. 启动服务:
在djangoxxx_socket.xml所在路径下:
执行命令:uwsgi -x djangoxxx_socket.xml
即可启动服务,并可以查看uwsgi.log中的启动日志