学习过PhP的站长对CGI运行模式都是不陌生的,它是早期动态网站不可或缺的运行协议。而Fast CGI是CGI的升级版本,是取代CGI的最佳运行模块。了解Fast CGI 之前我们先要来认识一下CGI。
简单的说CGI就像一座桥,随着动态网站技术的革新,服务器本身并不能直接运行 php,asp这样动态脚本。而CGI的出现很好地解决了这个问题,CGI就是让服务器把请求参数发送给自己,然后将处理后的结果再发给客户端。它把网页和WEB服务器中的执行程序连接起来,把HTML接收的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页。同时由于CGI 的跨平台性能极佳,几乎可以在任何操作系统上实现。也促使它在动态网站流行之初风靡一时。
然而随着网页技术的发展网站功能逐渐的复杂CGI的弊端也越来越明显明显,每当客户请求CGI的时候,WEB服务器就请求操作系统生成一个新的CGI解释器进程(如php-cgi.exe),CGI 的一个进程则处理完一个请求后退出,下一个请求来时再创建新进程。当然,这样在访问量很少没有并发的情况也行。可是当访问量增大,并发存在,这种方式就不适合了。于是就有了FastCGI。
Fast CGI像是一个常驻型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去创建新的进程。很多海外服务器都是支持fastCGI的,比如著名美国虚拟主机商HostEase,BLueHost,它的服务器产品都是支持fastCGI模块的,这一技术在服务器中运用的十分普遍。
Fast CGI技术的出现,解决了CGI模块工作的低效率问题。使用FastCGI, Web请求可以持续执行无需重新解析php.ini、所有这些都只在进程启动时发生一次就能载入全部扩展并重初始化全部数据结构。同时数据库也能保持持续的连接状态。按照目前网络技术的发展Fast CGI协议取代传统CGI技术是必然的过程了。