安装 Virtualenv

pip install –U virtualenv

搭建并进入 Virtualenv 环境

virtualenv –no-site-packages –distribute your_env
cd your_env source bin/activate

安装 Django 等需要的类库,比如 pip install django

尽情的进行Django项目、应用等

安装 uwsgi

pip install uwsgi

配置多站点开始啦

假设我们的两个站点分别叫 wa (website_a的缩写) wb (幸亏没有第三个)

新建三个文件夹 uwsgi_conf, uwsgi_socks 和 uwsgi_logs

在 uwsgi_conf 下建立 wa_uwsgi.ini 和 wb_uwsgi.ini 两个配置文件,在 uwsgi_socks 下建立 wa_uwsgi.sock 和 wb_uwsgi.sock 两个 sock 文件,在 uwsgi_logs 下建立 wa_uwsgi.log 和 wb_uwsgi.log 两个日志文件

ini配置文件的内容

#wa_uwsgi.ini 
[uwsgi]
uid = user #执行的用户
gid = user_group #执行的用户组 chmod-socket = 777
chown-socket = user
vhost = false
socket = (virtualenv的路径)/socks/wa_uwsgi.sock
master = true
enable-threads = true
workers = 6 #进程数
wsgi-file = (virtualenv的路径)/wa/wa/wsgi.py     
virtualenv = (virtualenv的路径)/
chdir = (virtualenv的路径)/wa
#配置文件用到的sock文件
daemonize = (virtualenv的路径)/uwsgi_logs/wa_uwsgi.log

wb_uwsgi.ini参考 wa_uwsgi.ini 就好啦

可以用 uWSGI 的 Emperor 模式来启动 uWSGI 服务

uwsgi –emperor (virtualenv 的路径)/uwsgi_conf

想要重启某站点的时候,就 touch 一下该站点的配置文件

touch (virtualenv 的路径)/uwsgi_conf/wb_uwsgi.ini

配置Nginx

server{
    listen 80; server_name wa.com;
    access_log (virtualenv 的路径)/logs/wa_access.log; 
    error_log (virtualenv 的路径)/logs/wa_error.log;
    root (virtualenv 的路径)/wa; 
    index index.html index.htm;
    charset utf-8; 
    location ~^/static/ {
        root (virtualenv 的路径)/wa/;
        expires 24h;
        access_log off; 
    }
    location ~^/media/ {
        root (virtualenv 的路径)/wa/; 
        expires 24h;
        access_log off;
    }
    location / {
        uwsgi_pass unix: (virtualenv 的路径)/socks/wa_uwsgi.sock; 
        include uwsgi_params;
        proxy_http_version 1.1;
    }
}
server{
    #参考上面啦~ 
}

重启Nginx