使用fcgiwrap为nginx提供cgi支持

nginx不支持cgi程序,通过fcgi包装程序,可以使nginx间接支持cgi程序。

现在fcgiwrap已经进入了官方源,因此以前的fcgi包装方法就不用了。

安装

#apt-get install fcgiwrap

配置

/etc/nginx/fcgiwrap.conf

1
2
3
4
5
6
7
location ~ \\.(cgipl).*$ {
gzip off;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_index index.cgi;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

使用

在站点配置文件中包含fcgiwrap.conf即可

include fcgiwrap.conf

配置 -TCP方式
还可以将fcgiwrap配置成TCP方式提供服务,不过这需要修改/etc/init.d/fcgiwrap服务脚本

#socket 方式配置

FCGI_APP Variables

FCGI_CHILDREN=”1”
FCGI_SOCKET=”/var/run/$NAME.socket”

改为
#TCP 方式

FCGI_APP Variables

FCGI_CHILDREN=”1”
FCGI_PORT=”8999”
FCGI_ADDR=”127.0.0.1”

然后修改/etc/nginx/fcgiwrap.conf为:

1
2
3
4
5
6
7
location ~ \\.(cgipl).*$ {
gzip off;
fastcgi_pass 127.0.0.1:8999;
fastcgi_index index.cgi;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

参见Nginx and Perl-FastCGI on Debian 6