Nginx 服务器默认并不支持 CGI,但是支持 FastCGI。这里有两种方法可以使 Nginx 支持 CGI。
1. 使用 Nginx 透明代理功能将所有的 cgi 请求全部代理到后台支持 CGI 的 Web Server 上。
2. 使用 CGI 的 FastCGI 封装器执行 CGI 程序。
先简单说一下第一种方法,在后台运行一个支持CGI的Web服务器,当时是越简单都好啦,使用反向代理把 /cgi-bin 的请求转发到后台的服务器上处理。这里我们使用第二种方法。
location /cgi-bin {
include proxy.conf;
proxy_pass 127.0.0.1:8000;
}
因为我们要用户权限分离,如果用第一种方法的话,需要为每个用户运行一个服务器或要求这个服务器可以用户分离。不如使用封装器,只要为每个用户运行一个封装器就可以,这里我们选择一个简单的封装器 FcgiWrap
1. 下载源代码 & 编译
下载地址:http://github.com/gnosek/fcgiwrap/tarball/master
sudo aptitude install libfcgi-dev # 先安装 libfcgi 开发包
cd fcgiwrap
autoreconf
./configure
make
2. Nginx 虚拟主机配置,增加如下
location /cgi-bin {
fastcgi_pass unix:/var/web/username/run/fcgiwrap.socket;
fastcgi_index index.cgi;
fastcgi_param SCRIPT_FILENAME /var/web/username/home/web/$fastcgi_script_name;
include fastcgi_params;
}
3. 运行 FcgiWrap
su username -c "/path/fcgiwrap -s unix:/var/web/username/run/fcgiwrap.socket"
chmod 666 /var/web/username/run/fcgiwrap.socket
Over!
你说了我可以随便写python程序的,vps出问题你负责维修
@Bubto 嗯,正好测试一下稳定性。
应该弄个邮件回复的插件,方便些
@婉秋 啥插件可以?