CGI 和 FastCGI

发布时间:2020-08-10 22:26:06 作者:rgyu567
来源:网络 阅读:390

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

因为 FastCGI 是一种单线程的应用程序,因此必须启动多个线程来处理多个请求。这些进程可以汇集到一个进程池,组成不同的进程组,这样便可以统一管理这些进程组。一个进程组的属性可以是托管的,举例来说,一个进程组中的进程数量,以及一个进程在回收之前可以处理的请求数量等,都属于进程组的属性,并且可以受托管。一个进程组中可以包含多个进程,FastCGI 也可以同时运行多个进程组,并且每个进程组都可以拥有自己的设置。

推荐阅读:
  1. PHP介绍和Apache的Module、CGI与FastCGI
  2. cgi fastcgi php-cgi php-fpm

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

iis tc st

上一篇:MySQL权限表介绍

下一篇:Best Practices and Recommendations for RAC databases with SGA size over 100GB

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》