webpy+nginx+fastcgi使用spawn-fcgi启动fastcgi

使用spawn-fcgi启动webpy的fastcgi方式,前端是nginx

* 服务器环境:FreeBSD 7.1
* webpy-0.32
* spawn-fcgi v1.6.0
* nginx/0.6.36
* Flup

参照官方网站的例子行不通。

spawn-fcgi没有 -d参数,chroot的参数是-c 使用后会提示stderr输出错误。

修改项目主程序:

1. if __name__==”__main__”:
2. #关掉stderr的输出位置
3. import sys
4. sys.stderr = None
5. #fastcgi的方式运行app
6. web.wsgi.runwsgi = lambda func, addr=None:
7. web.wsgi.runfcgi(func, addr)
8. app.run()

使用spawn-fcgi启动fastcgi进程:

/usr/local/bin/spawn-fcgi -u www -g www -f /www/zcut/zcut.py -a 127.0.0.1 -p 8032 -F 5 -P /tmp/zcut.pid

参数说明:

-f 指定调用 FastCGI 的进程的执行程序位置,根据系统上所装的 PHP 的情况具体设置
-a 绑定到地址 addr
-p 绑定到端口 port
-F 指定产生的 FastCGI 的进程数
-P 指定产生的进程的 PID 文件路径
-u 和 -g FastCGI 使用什么身份运行

将进程PID保存下来方便关闭进程:

kill `cat /tmp/zcut.pid`

启动后用sockstat -4 查看到类似下列信息,用ps也可以,习惯问题
www python 15274 0 tcp4 127.0.0.1:8032

然后配置nginx指向webpy的fastcgi端口

location / {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_pass 127.0.0.1:8032;
}

配置静态目录:

location /static/ {
if (-f $request_filename) {
rewrite ^/static/(.*)$ /static/$1 break;
}
}

相关推荐: Python+Memcached网页优化

本来我一直不知道怎么来更好地优化网页的性能,然后最近做python和php同类网页渲染速度比较时,意外地发现一个很简单很白痴但是我一直没发现的好方法(不得不BS我自己):直接像某些php应用比如Discuz论坛那样,在生成的网页中打印出“本页面生成时间多少多少…

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论