CGI 和 FastCGI

CGI(Common Gateway Interface,公共网关接口)是一种标准协议,这种协议能够为一个应用程序和一个 Web 浏览器之间进行交互提供通讯支持。CGI 最先出现于 1993 年,全部版本的 IIS 都为 CGI 提供了支持。在 IIS 上运行 CGI 时,CGI 处理请求的方式存在一些问题。对于 CGI 应用程序处理的每一个新请求,IIS 都必须建立一个新的进程,待进程执行结束后,再关闭该进程。IIS 能够迅速地处理请求,可是,启动和中止进程的开销可能会成为性能瓶颈,这就是在 IIS 上运行 CGI 时,CGI 处理请求方式存在的问题。所以,IIS 引入了 FastCGI。 FastCGI可以部分解决上述性能瓶颈问题。浏览器

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 可以进一步提升这些应用程序的运行性能。ide

由于 FastCGI 是一种单线程的应用程序,所以必须启动多个线程来处理多个请求。这些进程能够聚集到一个进程池,组成不一样的进程组,这样即可以统一管理这些进程组。一个进程组的属性能够是托管的,举例来讲,一个进程组中的进程数量,以及一个进程在回收以前能够处理的请求数量等,都属于进程组的属性,而且能够受托管。一个进程组中能够包含多个进程,FastCGI 也能够同时运行多个进程组,而且每一个进程组均可以拥有本身的设置。 性能

相关文章
相关标签/搜索