FastCGI同CGI一样是一个WEB服务器与外部程序接口的标准,它是为解决CGI的性能问题而开发的一种技术。
CGI技术的性能缺陷:每当服务器收到一个对CGI程序请求时,服务器都将创建一个CGI程序的进程,CGI程序处理完请求后,将输出发给服务器或直接传回客户端,然后终止。
fastCGI对CGI技术进行了改良,一个fastCGI进程在WEB服务器启动时或在客户端第一次请求时创建,它处理完客户端请求后并不终止,而是等待处理下一个请求。另外fastCGI程序与CGI程序与服务器的交互方式也不同,CGI程序通过环境变量、命令行、标准输入输出进行交互,因此CGI程序进程必须与服务器进程在同一台物理计算机上,而fastCGI程序与服务器进程通过网络连接交互,因此fastCGI程序可以分布在不同的计算机上,这不但可以提高性能,同时也提高了系统的扩展能力。
利用FastCGI功能可以改善网站的访问速度,但目前国内仅有少量IDC虚拟主机支持FastCGI功能,中电网通领先其中,09年投巨资购入10台Intel品牌服务器,基于正版Windows Server 2008搭建FastCGI平台。
FastCGI是为了改善网站的性能--减少资源占用,提高访问速度。如果你的网站是建在虚拟主机上,每天的页面访问量有10,000-300,000,那么你就应该考虑开启FastCGI功能了;或者如果 你的网站程序需要FastCGI,比如RoR(Ruby on Rails),你也要开启FastCGI。
FastCGI之所以能加速网站是因为php的解释器是常驻内存的,不用每个访问运行一次php可执行文件。如果你需要使用FastCGI,你不需要对你的PHP程序做任何改动,只要你的PHP程序能正常运行,那么就可以和FastCGI一起正常地运行,据业内权威评测显示,基于Windows Server 2008的Fastcgi PHP解析速度超越Linux,领先130%