PythonTip >> 博文 >> python

在CentOS用uWSGI+Nginx部署Python环境

zihua 2014-01-20 23:01:40 点击: 780 | 收藏


在CentOS用uWSGI+Nginx部署Python环境

不像PHP,安装好就不用管什么了,Python的环境部署还真是麻烦,还要弄各种路径…

在Google找了找,知道了一个uWSG的东西,别人评测说速度很快,效率高.就决定使用了..能力现在有限,没法测试是否真的快呢.

用Python的pip install uwsgi命令安装uWSGI时,不是502 gate away,就是 uWSGI error

经过几百次安装研究搜索,终于弄uWSGI部署好Python网站环境了..

折腾的东西说不完,实在太多了,搞了三天 -_-!! 还把yum命令给搞坏了..记录下正确的操作好了…使用的是CentOS6.2 64bit

先去官网下面个uWSGI的最新版

1
2
3
[deloz@deloz.net ~]# wget -c http://projects.unbit.it/downloads/uwsgi-1.1.2.tar.gz[deloz@deloz.net ~]# tar -zxvf uwsgi-1.1.2.tar.gz[deloz@deloz.net ~]# cd uwsgi-1.1.2 && make

编译结束用下面的命令把uwsgi这个程序文件复制到/usr/bin,如下. 这样就可以直接使用uwsgi命令了.

启动uWSGI,如下.

uWSGI的参数说明:

-s 以unix socket的方式执行uWSGI,后面跟路径.

-C 修改/tmp/uwsgi.sock的权限为666

-M 启动管理进程

-p 生成worker子进程数,-p 4 表示生成4个

-t cgi程序超时时间,-t 60 表示超时60秒就丢掉

–limit-as 脚本占用最大内存,–limit-as 128表示最大为128M

-R 每个worker处理的最大请求数,-R 10000表示处理的请求最多10000个

–vhost 表示启用虚拟服务器,这样就可以一个uWSGI主进程,管理多个Python站点了

-d 守护进程方式启动,-d /logs/uwsgi.log 表示指定日志文件

–pythonpath 指定Python站点的目录, –pythonpath /python_sites 表示里边放Python的站点,例如/python_sites/web_one/, /python_sites/web_two/

本来想加进开机启动的,把命令给写错了.正确的应该是>>而不是> ,导致覆盖了/etc/rc.local之前的配置…

1
[deloz@deloz.net uwsgi-1.1.2]# echo /usr/bin/uwsgi -s /tmp/uwsgi.sock -C 666 -M -p 4 -t 60 --limit-as 128 -R 10000 --vhost -d /data/logs/uwsgi.log --pidfile /tmp/uwsgi.pid --pythonpath /python_sites >> /etc/rc.local
1
2
3
4
#!/bin/shtouch/var/locak/subsys/local/usr/bin/uwsgi -s/tmp/uwsgi.sock -C666-M-p4-t60--limit-as128-R10000--vhost-d/data/logs/uwsgi.log --pidfile/tmp/uwsgi.pid --pythonpath/python_sites
1
2
3
4
5
6
7
8
9
10
listen 80;
location /{#注意是///
	uwsgi_pass unix:///tmp/uwsgi.sock;
	include uwsgi_params;
	uwsgi_param UWSGI_PYTHOME /python_sites;
	#web_one_app是站点web_one目录下的一个web_one_app.py文件
	uwsgi_param UWSGI_SCRIPT web_one_app;
	uwsgi_param UWSGI_CHDIR /python_sites/web_one;
}
原文链接:http://www.wumii.com/item/MBaIDCx

作者:zihua | 分类: python | 标签: python | 阅读: 780 | 发布于: 2014-01-20 23时 |