在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; } |