无与伦比

Webpy + Nginx with FastCGI搭建Web.py

一.从古老的CGI说起
CGI(Common Gateway Interface)是最古老,也是被几乎所有web服务器支持的接口。用CGI接口执行的python程序,在每次web请求到来时,都会被启动执行一次,相当于每次都需要执行一次新的python解释器,这样,服务器的性能就大大降低了。
如今,虽然也能使用CGI编写程序,但已经不推荐使用了。
之前已经说过Nginx的安装了,这里就不再赘述了。
Nginx安装使用在这里:
Nginx安装和使用简介

二.使用FastCGI

我们需要安装spawn-fcgi
sudo apt-get install spawn-fcgi

spawn-fcgi是一个小程序,这个程序的作用是管理fast-cgi进程,那么管理wsgi进程也是没有问题的,功能和php-fpm类似。

三.webpy
1.web.py简介
web.py是一款轻量级的python web开发框架,简单、高效、学习成本低,特别适合作为python web开发的入门框架。官方站点:http://webpy.org/

2.web.py安装

安装webpy
$ wget http://webpy.org/static/web.py-0.34.tar.gz
$ tar xvzf web.py-0.34.tar.gz
$ cd web.py-0.34
$ sudo python setup.py install

安装 Flup
http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz
$ wget http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz
$ tar xvzf flup-1.0.2.tar.gz
$ cd flup-1.0.2.tar.gz
$ sudo python setup.py install

可以通过一下命令启动一个Spawn-fcgi进程:
spawn-fcgi -d /path/to/www -f /path/to/www/index.py -a 127.0.0.1 -p 9002

假如报如下错误:
spawn-fcgi: child exited with: 126
请检查index.py的权限,尝试赋予执行权限
sudo chmod +x index.py

修改nginx配置文件,默认位置:/usr/local/nginx/conf/nginx.conf

location / {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; # [1]
fastcgi_param PATH_INFO $fastcgi_script_name; # [2]
fastcgi_pass 127.0.0.1:9002;
}

退出移动版