CGI和FastCGI
CGI(Common Gateway Interface,公共网关接口)是一种标准协议,这种协议可以为一个应用程序和一个 Web 浏览器之间进行交互提供通信支持。CGI 最早出现于 1993 年,所有版本的 IIS 都为 CGI 提供了支持。在 IIS 上运行 CGI 时,CGI 处理请求的方式存在一些问题。对于 CGI 应用程序处理的每个新请求,IIS 都必须创建一个新的进程,待进程执行结束后,再关闭该进程。IIS 可以迅速地处理请求,但是,启动和停止进程的开销可能会成为性能瓶颈,这就是在 IIS 上运行 CGI 时,CGI 处理请求方式存在的问题。因此,IIS 引入了 FastCGI。 FastCGI能够部分解决上述性能瓶颈问题。
成都创新互联公司专业为企业提供永胜网站建设、永胜做网站、永胜网站设计、永胜网站制作等企业网站建设、网页设计与制作、永胜企业网站模板建站服务,10年永胜做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
FastCGI (C:\Windows\System32\inetsrv\iisfcgi.dll)是一种新版本的 CGI,能满足大多数原有的 CGI 规范。然而,FastCGI 并没有在请求处理完毕时关闭一个进程,而是令这个进程继续运行,并处理其他请求。与 CGI 类似,FastCGI 也是单线程的,但是与 CGI 相比,当使用 FastCGI 时,服务器可以处理更多的请求,这是因为,进程仍然处于打开的状态。在 IIS 7.0 中,FastCGI 是使用内置的 API 实现的,并且被实现为一个本机的模块。
为什么要使用 FastCGI 呢?这是因为目前仍然存在大量的 PHP 应用程序,这些应用程序得到了广泛的应用。尽管这些应用程序通常使用了 CGI 版本或 ISAPI 版本的 PHP,但是,FastCGI 能够进一步提高这些应用程序的运行性能。
因为 FastCGI 是一种单线程的应用程序,因此必须启动多个线程来处理多个请求。这些进程可以汇集到一个进程池,组成不同的进程组,这样便可以统一管理这些进程组。一个进程组的属性可以是托管的,举例来说,一个进程组中的进程数量,以及一个进程在回收之前可以处理的请求数量等,都属于进程组的属性,并且可以受托管。一个进程组中可以包含多个进程,FastCGI 也可以同时运行多个进程组,并且每个进程组都可以拥有自己的设置。
本文标题:CGI和FastCGI
网站URL:http://myzitong.com/article/ppgdes.html