nginx本身并没有集成fastcgi,但是可以通过配置来支持FastCGI,而对于FastCGI程序则需要一个FastCGI进程管理器来调度它。
关于FastCGI的详细可以参考:http://www.fastcgi.com/。
一、FastCGI进程管理器
可以使用lighttpd的一个子项目即spawn-fcgi来作为FastCGI进程管理器。
首先,下载spawn-fcgi-1.6.3。解压后执行如下命令来使编译和拷贝到Nginx可执行文件目录下:
二、FastCGI程序开发库
编写FastCGI程序还需要FastCGI的库和头文件支持。
下载FastCGI库,解压后编译FastCGI库:
由于FastCGI项目太老,而GCC更新又太快,所以可能会出现如下错误:
fcgio.cpp:50: error: 'EOF' was not declared in this scope
很简单,在include/fcgio.h中添加#include <cstdio>后,再次编译安装即可。
三、编写FastCGI程序
#cd /usr/local
#mkdir fastcgi
#vi helloFastCGI.c
#g++ helloFastCGI.c -o helloFastCGI -L/usr/local/lib -lfcgi -Wl,-R /usr/local/lib
#./helloFastCGI
四、启动FastCGI进程管理器
查看spwan-fcgi的命令参数信息:
#/usr/sbin/spawn-fcgi --help
启动spawn-fcgi:
#/usr/sbin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 25 -f /usr/local/fastcgi/helloFastCGI -F 1000
上面命令参数中,-p指定FastCGI进程管理器监听的端口号,-F指定spawn-fcgi将fork多少个child进程(之后Nginx对于此cgi的请求就可以并发处理了,这里是1000并发)。
关闭spawn-fcgi打开的fastcgi程序:
五、修改Nginx配置文件 (延伸阅读:nginx配置文件的简明说明 nginx配置文件详解)
1)修改Nginx配置文件:
#vi /etc/nginx/nginx.cinf
2)重新加载配置文件:
#kill -HUP PID
3)打开浏览器,输入http://localhost/x.cgi,就能看到如下显示说明成功了:
如此,nginx中FastCGI+C/C++的简单配置就完成了。