最后更新于 .

在上一篇文章linux下nginx+python+fastcgi部署总结(django版)中,我们部署了nginx+django+fastcgi的环境,这次我们来部署一下nginx+web.py+fastcgi。 其实web.py上的官方网站已经说的比较清楚了,原文如下: http://webpy.org/cookbook/fastcgi-nginx 这里主要讲一下一些原文没有照顾到的地方。

一.安装依赖

spawn-cgi

lup

二.配置nginx

在server配置项下增加

location / {
    #这两种方法都可以,只不过spawn-cgi启动的方法不同
    #fastcgi_pass 127.0.0.1:9002;
    fastcgi_pass unix:webpy.sock;

    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param QUERY_STRING $query_string;
    fastcgi_param CONTENT_TYPE $content_type;
    fastcgi_param CONTENT_LENGTH $content_length;
    fastcgi_param GATEWAY_INTERFACE CGI/1.1;
    fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
    fastcgi_param REMOTE_ADDR $remote_addr;
    fastcgi_param REMOTE_PORT $remote_port;
    fastcgi_param SERVER_ADDR $server_addr;
    fastcgi_param SERVER_PORT $server_port;
    fastcgi_param SERVER_NAME $server_name;
    fastcgi_param SERVER_PROTOCOL $server_protocol;
    fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_script_name;
}

三.一个简单的index.py

#!/usr/bin/python
# -*- coding: utf-8 -*-

import web 

urls = ("/.*", "hello")
app = web.application(urls, globals())

class hello:
    def GET(self):
        return 'Hello, world!'

if __name__ == "__main__":
    web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr)
    app.run()

并执行:

chmod +x index.py

四.启动web.py

启动:

#spawn-fcgi -P `pwd`/webpy.pid -f /home/dantezhu/htdocs/ngx_web/index.py -a 127.0.0.1 -p 9002 &
spawn-fcgi -P `pwd`/webpy.pid -f /home/dantezhu/htdocs/ngx_web/index.py -s /home/dantezhu/nginx/sbin/webpy.sock &

停止:

kill -9 `cat webpy.pid`

五.启动nginx

与上一篇文章一样,这里不再赘述。

六.加入到rc.local中,自动启动

/home/dantezhu/nginx/sbin/start.sh
sudo -u dantezhu /home/dantezhu/htdocs/ngx_django/mysite/start.sh
sudo -u dantezhu /home/dantezhu/htdocs/ngx_web/start.sh

OK,就是这样啦~

Pingbacks

Pingbacks已打开。

Trackbacks

引用地址

评论

  1. Miles

    Miles on #

    尝试下uwsgi吧

    Reply

    1. Dante

      Dante on #

      哈哈哈,你说到点子上啦,马上就要发uwsgi的文章

      Reply

      1. Miles

        Miles on #

        哈哈,uwsgi很不错,但是我遇到一个uwsgi的bug,设置touch-reload后,运行一段时间uwsgi进程就会cpu 100%,不知道你遇到过没有

        Reply

        1. Dante

          Dante on #

          没有呢~ 我touch之后跑了一天,cpu也是正常的~ 是不是版本有点低?

          Reply

    2. Dante

      Dante on #

      已经发了~
      http://www.vimer.cn/2011/07/linux%E4%B8%8Bnginxpythonuwsgi%E9%83%A8%E7%BD%B2%E6%80%BB%E7%BB%93djangoweb-py.html

      Reply

  2. moper

    moper on #

    是不是要流行python了~

    Reply

    1. Dante

      Dante on #

      哈哈,python是个好东西啊~~
      越来越喜欢~~

      Reply

  3. zid_user

    zid_user on #

    为什么我照个配了,还是不行呢?

    Reply

发表评论