部署django:uwsgi+supervisor+nginx


测试django项目能否正常运行,运行开发服务器测试,确保开发服务器下能正常打开网站

$ python manage.py runserver 10.70.73.191:8000

安装 nginx 和需要的包

$ sudo apt-get install  nginx
$ sudo pip install supervisor uwsgi

使用supervisor管理进程
生成supervisor默认配置文件

$ (sudo) echo_supervisord_conf > /etc/supervisord.conf

如果没有root账户,可以先在home目录下生成配置文件,然后move到/etc
在supervisord.conf的最后添加代码:

[program:mysite]

# 使用配置文件ini的方式使用uwsgi
command=/usr/local/bin/uwsgi --ini /home/username/djangode/mysite/uwsgi.ini

directory=/home/username/djangode/mysite
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile_maxbytes=20MB
stdoiut_logfile_backups=20

#设置日志存放目录
stderr_logfile=/home/username/djangode/mysite/log/error.log
stdout_logfile=/home/username/djangode/mysite/log/out.log

在 /path/to/project 下建立一个uwsgi.ini 文件,内容如下:

[uwsgi]
socket = /tmp/mysite.sock
chdir=/home/username/djangode/mysite
wsgi-file = mysite/wsgi.py
touch-reload=/home/username/djangode/mysite/reload

processes = 2
threads = 4

chmod-socket = 664
chown-socket = username:www-data

然后执行touch reload,生成一个名叫reload 的空文件。注意上面的 /tmp/mysite.sock,它会自动生成,一会儿跟nginx关联起来
重启一下supervisor:

$ sudo supervisorctl  -c  /etc/superviord.conf restart  mysite

或者

$ sudo supervisorctl  -c  /etc/superviord.conf restart  all

配置nginx
新建一个网站 mysite

$ sudo vim /etc/nginx/sites-available/mysite.conf

写入以下内容:

server {
    listen      80;
    server_name 10.70.75.191;
    charset     utf-8;
    access_log  /srv/djangode/log/access_log;
    error_log   /srv/djangode/log/error_log;

    client_max_body_size    75M;

    location /static {
        alias /home/username/djangode/mysite/static;
    }

    location /media {
        alias /home/username/djangode/mysite/media;
    }

    location / {
         wsgi_pass  unix:///tmp/mysite.sock;
         include     /etc/nginx/uwsgi_params;
     }
}

激活网站:

$ sudo ln -s /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/mysite.conf

测试配置语法问题: sudo service nginx configtest
重启nginx服务器: sudo service nginx reload 或者 sudo service nginx restart

ps:本文中的IP地址是作者随意写的,如与你的IP雷同,绝对纯属巧合,哈~.~

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器