nginx+uwsgi部署多个python应用

nginx+uwsgi部署多个python应用
2015-01-12 17:35:52
标签: python应用  shell

参考文章:

http://kb.cnblogs.com/page/86907/ (配置Nginx+uwsgi更方便地部署python应用)

http://projects.unbit.it/uwsgi/wiki/VirtualHosting (uWSGI VirtualHosting Mode)

http://uwsgi-docs.readthedocs.org/en/latest/Configuration.html (Configuring uWSGI)



为了让多个站点共享一个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
<uwsgi>
<pidfile>/usr/local/nginx/conf/uwsgi.pid</pidfile>
<socket> 192.168 . 1.121 : 9001 </socket>
<processes> 4 </processes>
<pythonpath>/www/fabric-bolt/lib/python2. 7 /site-packages</pythonpath>
<pythonpath>/www/fabric-bolt/lib/python2. 7 /site-packages/fabric_bolt</pythonpath>
<pythonpath>/www/fabric-bolt/lib/python2. 7 /site-packages/fabric_bolt/work</pythonpath>
<daemonize>/tmp/uwsgi.log</daemonize>
</uwsgi>


重启nginx服务,两个站点就可以共用一个uwsgi服务了。


结语:

上篇文章配置好了dns服务器,这里分别访问nginx虚拟主机app1.blogex.com跟app2.blogex.com,可以看到django应用:

wKiom1SzlIjQ0JgJAAGwJ1iU5eg116.jpg


wKiom1SzlOOR20EgAAGdg7tzkis005.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值