nginx不支持cgi程序,通过fcgi包装程序,可以使nginx间接支持cgi程序。
现在fcgiwrap已经进入了官方源,因此以前的fcgi包装方法就不用了。
安装
#apt-get install fcgiwrap
配置
/etc/nginx/fcgiwrap.conf
1
2
3
4
5
6
7
|
location ~ \.(cgi|pl).*$ { 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 ~ \.(cgi|pl).*$ { 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
转自:http://openwares.net/linux/nginx_fcgiwrap_cgi_support.html