在nginx下支持cgi脚本于支持node类似的,只要在nginx直接做个转发,转发到对应的cgi套接字就好。
使用Fcgiwrap
Fcgiqwrap是另外一个CGI封装库,跟Simple CGI类似。
安装fcgiwrap
apt-get install fcgiwrap
安装以后fcgiwrap默认已经启动,对应的套接字是 /var/run/fcgiwrap.socket 。如果没有启动,使用 /etc/init.d/fcgiwrap 手动启动。
配置nginx的vhost文件
在要支持cgi脚本的路径下,添加对应的server配置。比如所有的cgi都在cgi-bin路径下(现在/monitor/api/下):
server { listen 80; server_name www.a.com; charset UTF-8; access_log /data/logs/www.a.com.log; root /data/web/www; location / { index index.html index.htm test.php; } location ~ ^/monitor/api/ { gzip off; fastcgi_pass unix:/var/run/fcgiwrap.socket; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
重新加载nginx:
/etc/init.d/nginx reload
web测试页面下载:
https://pan.baidu.com/s/16GGRrXRCY-oUiuXxr6J_xQ 提取码:9t1y
创建文件夹和设置权限
mkdir /data/web/www mkdir /data/logs chmod +x /data/web/www/monitor/api/*.sh chmod 777 /var/run/fcgiwrap.socket
打开页面测试:
http://www.a.com/monitor/
参考:
转载于:https://blog.51cto.com/hellvenus/2403271