Nginx+uWSGI安装与配置

nginx中uwsgi的使用和php-fpm的使用很相似。

1、安装配置nginx和Pyhton运行环境
nginx的安装与配置:http://mdba.cn/?p=94
Python的安装与升级:http://mdba.cn/?p=86

2、编译uWSGI

uWSGI下载地址:http://projects.unbit.it/downloads/

tar xzvf uwsgi-1.2.tar.gz
cd uwsgi-1.2
make -j 8
#或者使用python编译
python uwsgiconfig.py --build

#复制生成的可执行文件uwsgi到/usr/sbin/目录下
cp uwsgi /usr/sbin/

3、测试uwsgi是否可用
测试脚本test.py

#!/usr/bin/python
def application(env,start_response):
   start_response('200 OK',[('Content_Type','text/html')])
   return "Congraduation!!! uWSGI Testing OK!!!
#启动web server
uwsgi --http  :9090 --wsgi-file test.py

浏览器输入IP:端口:192.168.1.99:9090
可以看到”Congraduation!!! uWSGI Testing OK!!!”

4、nginx中配置uWSGI
我的nginx的每个Web应用的配置文件在nginx安装目录下面的sites-enabled下面
配置文件如下:

server
{
    listen 80;
    server_name 192.168.1.10;

    root /usr/local/sylar/extension;
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:9090;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root html;
    }
}

#配置好了记得重启nginx

/usr/local/nginx/sbin/nginx -t
killall /usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx

4、Web应用的uWSGI配置xml文件
在上面的设定的Web根目录/usr/local/sylar/extension下面创建extension.xml(extension是应用的名称)
输入一下内容:

<uwsgi>
<socket>:9090</socket>
<chdir>/usr/local/wochacha/extension</chdir>
<wsgi-file>test.py</wsgi-file>
<module>extension</module>
<processes>4</processes>
</uwsgi>

5、建立测试应用
把上面的第3步骤的test.py复制到Web应用的根目录/usr/local/wochacha/extension下面

6、启动uwsgi服务进程
uwsgi -x /usr/local/wochacha/extension/extension.xml

7、访问Python应用

浏览器里面输入IP或者ServerName,除非上面设置listen端口不是http默认的80端口
上面的9090端口不能出现在URL里面,因为他是uwsgi的服务端口。注意这里的
否则你不能访问Web应用数据,且uwsgi进程提示”invalid request block size: 21573 (max 4096)…skip”

此条目发表在web分类目录,贴了标签。将固定链接加入收藏夹。

Nginx+uWSGI安装与配置》有 6 条评论

  1. Arnie97说:

    第三段
    uwsgi –http :9090 –wsgi-file test.py
    应改为
    uwsgi --http :9090 --wsgi-file test.py

  2. 123说:

    博主 我尝试了很久 报错 uwsgi: invalid option — ‘x’
    getopt_long() error 这是怎么回事? -x 我也试了
    xml我也试了 但就是不行
    不能启动

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>