若干年来,通用网关接口(CGl)已成为服务器端应用程序开发的事实标准。随着时间的推移,发现在沉重的CGI负担下许多Web服务器系统的表现不尽人意。研究表明CGI规范存在瓶颈问题:每当客户系统请求CGI应用程序时,Web服务器就必须启动新的CGI进程,然后进程完成它的任务并结束。当负载低时,它会工作得很好。然而,在高负载时,进程设置和初始化所需要的时间就成为性能的瓶颈。
新的标准现在脱颖而出以弥补这种不足。尽管仍处在接受的早期阶段,但FastCGI是很有前途的开放标准。在本章中,将讨论标准的细节以及如何在Apache中实现FastCGI。
作为新选择的FastCGI,简单说,FastCGI应用程序就像服务器应用程序一样进行操作。不像CGI应用程序,它始终处于活动状态并为来自Web服务器的请求提供服务。这正是FastCGI的优点所在。不同于C0,在每次处理请求时,它没有启动新进程和做应用程序初始化(例如与数据库
连接)方面的开销。可以使用各种不同的语言,包括Perl、C、C++、Java和Python,编写Web服务器应用程序。这是CGI的高性能的代用方案。
什么是PHP FastCGI?
FastCGI是什么?
FastCGI
PHP的FastCGI使你的所有php应用软件通过mod_fastci运行,而不是mod_phpsu***ec。FastCGI应用速度很快
是因为他们持久稳定。不必对每一个请求都启动和初始化。这使得应用程序的开发成为可能,否则在CGI范例是不切实际的(例如一个大型的脚本,或者一个需要
连接单个或多个数据库的应用)。
好处
- PHP脚本运行速度更快(3到30倍)。PHP解释程序被载入内存而不用每次需要时从存储器读取,极大的提升了依靠脚本运行的站点的性能。
- 需要使用更少的系统资源。由于服务器不用每次需要时都载入PHP解释程序,你可以将站点的传输速度提升很高而不必增加cpu负担。
- 不需要对现有的代码作任何改变。现有的一切都适用于PHP的FastCGI
潜在问题
- 对所有的子目录(/home/USERNAME/public_html/php.ini)你只有一个可用的php.ini文件。
这是优化网站代码所必需的。如果你需要多个php.ini文件以适应不同的脚本需要,你可以在任何子目录禁用PHP的快速CGI,而其余的地方则继续有
效。如果你需要这样做请联系support。
- 你对PHP环境做的任何升级(如php.ini文件的改变)都有几分钟的延迟。这是因为为了更快的速度 你的php.ini文件已经被载入内存,而不是每次需要时再从存储器重新读取。
阅读(1305) | 评论(0) | 转发(0) |