安装 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