首先,cgi是处理web服务器的动态请求的一种方式,通过fork一个进程来处理一个请求。
但是效率是很低下的,频繁的创建和销毁线程。
所以通过一个中间层 fastcgi 来进行对cgi程序的管理:
这种方式的话就是通过 fastcgi 来对于cgi进程管理,使得一个cgi程序就能主管一个功能模块!
web服务器启动的时候启动fastcgi进程管理器, 然后该管理器启动多个cgi 解释器(就是执行功能块),如此,当从客户端来了请求,并且来到了fastcgi,通过该进程管理器去连接一个cgi解释器,然后执行后返回的结果和错误通过标准输出和标准错误从同一个连接返回给web服务器
但是,缺点在于fastcgi和nginx是分离的,所以这里就要引入第三方的中间层spawn-fcgi. 通过这个来进行对接nginx 的web服务器-----------与------------fastcgi的进程管理器.
启动方式:
- 首先在nginx配置文件中设置号对于指定命令的处理是通过 fastcgi来处理的.
- 编写一个cgi程序,这个程序名字是在nginx配置文件中
- 用spawn启动的fcgi程序. spawn-fcgi -a IP -p 端口 -f fastcgi程序
- 必须先启动才可以操作.