多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
首先,安装uwsgi,命令`pip3 install uwsgi`; 在nginx.conf配置文件中,`http{}`的最后加上一行: ~~~ include vhost/*.conf; ~~~ 目的是引入vhost文件夹下的配置文件; 在**nginx.conf**同目录下创建**vhost**文件夹,用来专门存放你的各种项目应用的配置文件。 * * * * * 假设你已经创建好了Django应用,名字叫‘djangoceshi’;在**vhost**文件夹下新建**djangoceshi.conf**文件,内容: ~~~ upstream djangoceshi { server unix:///tmp/djangoceshi.sock; } server { listen 80; server_name djangoceshi.xzwphp.com; access_log /data/wwwlogs/djangoceshi.xzwphp.com_nginx.log combined; index index.html index.htm index.py; #include /usr/local/nginx/conf/rewrite/djangoceshi.conf; charset utf-8; client_max_body_size 75M; location /media { alias /data/wwwroot/djangoceshi/media; } location /static { alias /data/wwwroot/djangoceshi/static; } location / { uwsgi_pass djangoceshi; include uwsgi_params; } } ~~~ * `#include /usr/local/nginx/conf/rewrite/djangoceshi.conf;`这一行引入的是你的**dangoceshi**的路由规则,我在这里注释掉了。 * `server_name djangoceshi.xzwphp.com;`这一行是你解析到服务器ip的域名。 * `charset utf-8;`指定编码。 * `client_max_body_size 75M;`指定最大上传尺寸。 * `alias /data/wwwroot/djangoceshi/media;`指定你的媒体文件目录。 * `alias /data/wwwroot/djangoceshi/static;`指定你的项目的静态资源文件目录,css,js等。 * * * * * 运行命令`nginx -t`,查看配置是否有语法错误;然后再输入命令‘nginx -s reload’使修改的配置生效。 * * * * * 在你的项目所在文件夹,和**manage.py**同目录,创建djangoceshi.ini文件,内容: ~~~ [uwsgi] chdir = /data/wwwroot/djangoceshi module = djangoceshi.wsgi master = true processes = 10 socket = /tmp/djangoceshi.sock chmod-socket = 664 vacuum = true daemonize=/data/nginx/wsgilogs/djangoceshi.log ~~~ * `module = djangoceshi.wsgi`引入你项目的wsgi.py文件。 * `chdir = /data/wwwroot/djangoceshi`这里写上你项目的所在目录。 * `daemonize=/data/nginx/wsgilogs/djangoceshi.log`记录你项目的uwsgi的运行记录,需要先建好文件夹,不然会报错,找不到目录,我的文件夹是**/data/nginx/wsgilogs/**。 * * * * * 启动uwsgi: ~~~ /usr/local/python3/bin/uwsgi --ini /data/wwwroot/djangoceshi/djangoceshi.ini ~~~ 然后访问域名**djangoceshi.xzwphp.com**,发现不成功,查看记录文件**djangoceshi.log**发现,报了一个错误: ~~~ Sun Dec 4 12:57:43 2016 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** ~~~ * * * * * 解决办法: 创建**www**用户组和**www**用户; ~~~ /usr/sbin/groupadd www /usr/sbin/useradd -g www www ~~~ 编辑Nginx的配置文件**nginx.conf**,将第一行修改为`user www www;` 去掉下面两行注释: ~~~ #error_log logs/error.log; #pid logs/nginx.pid; ~~~ 在**djangoceshi.ini**文件中添加两行: ~~~ uid = www gid = www ~~~ 如: ~~~ [uwsgi] uid = www gid = www chdir = /data/wwwroot/djangoceshi ...... ~~~ 再输入命令`nginx -s reload`使修改**nginx.conf**的配置生效; 启动uwsgi,`uwsgi --ini /data/wwwroot/djangoceshi/djangoceshi.ini`.