|
为了让多个站点共享一个uwsgi服务,必须把uwsgi运行成虚拟站点:去掉“-w myapp”加上”–vhost”
1
| uwsgi -M -p 2 -t 30 --limit-as 128 -R 10000 -x /usr/local/nginx/conf/uwsgi.xml -d /tmp/uwsgi.log --vhost
|
然后必须配置virtualenv,virtualenv是python的一个很有用的虚拟环境工具。
1
| easy_install virtualenv
|
然后设置一个/多个app基准环境
1
| virtualenv /www/fabric-bolt/
|
应用环境,在此环境下安装的软件仅在此环境下有效
1
2
3
4
| source /www/fabric-bolt/
pip install django
pip install mako
...
|
最后配置nginx,注意每个站点必须单独占用一个server
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| server {
listen 80;
server_name app1.blogex.com;
location / {
root /www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt;
include uwsgi_params;
uwsgi_pass 192.168.1.121:9001;
uwsgi_param UWSGI_PYHOME /www/fabric-bolt;
uwsgi_param UWSGI_CHDIR /www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt;
uwsgi_param UWSGI_SCRIPT wsgi;
access_log /usr/local/nginx/logs/access.log;
}
location /static/ {
alias /www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt/work/myweb/static/;
index index.html;
}
}
server {
listen 80;
server_name app2.blogex.com;
location / {
root /www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt/work;
include uwsgi_params;
uwsgi_pass 192.168.1.121:9001;
uwsgi_param UWSGI_PYHOME /www/fabric-bolt;
uwsgi_param UWSGI_CHDIR /www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt/work;
uwsgi_param UWSGI_SCRIPT django_wsgi;
access_log /usr/local/nginx/logs/access.log;
}
}
|
uwsgi.xml的配置
1
2
3
4
5
6
7
8
9
|
/usr/local/nginx/conf/uwsgi.pid
192.168.1.121:9001
4
/www/fabric-bolt/lib/python2.7/site-packages
/www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt
/www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt/work
/tmp/uwsgi.log
|
重启nginx服务,两个站点就可以共用一个uwsgi服务了。
结语:
上篇文章配置好了dns服务器,这里分别访问nginx虚拟主机app1.blogex.com跟app2.blogex.com,可以看到django应用:
|
|
|
|
|
|
|