FastCGI 相关

来源:互联网 发布:中科大网络通 编辑:程序博客网 时间:2024/05/17 23:23

注:本文为作者学习FastCGI的时候,从多篇文章中看到的内容进行摘录。暂时未加验证及思考筛选。留作后续学习之用。会在相应地方标明摘录来源。

 

FastCGI的工作原理是:

转载来源:http://hi.baidu.com/%D2%D0%CC%EC/blog/item/d8f532d1cb22a1349b50274f.html

  1. Web Server 启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module);
  2. FastCGI进程管理器自身初始化,启动多个CGI解释器进程 (在任务管理器中可见多个php-cgi.exe)并等待来自Web Server的连接。
  3. 当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi.exe。
  4. FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在 WebServer中)的下一个连接。 在正常的CGI模式中,php-cgi.exe在此便退出了。


在上述情况中,你可以想象 CGI通常有多慢。每一个Web请求PHP都必须重新解析php.ini、重新载入全部dll扩展并重初始化全部数据结构。使用FastCGI,所有这些 都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database connection)可以工作。

 

 

FastCGI的技术原理

转载来源:http://hi.baidu.com/fangle_life/blog/item /f7afa9ecc1f590dfb31cb1cb.html


如果想了解FastCGI的技术原理就要了解何为”短生存期应用程序”,何为”长生存期应用程序”。

先从CGI技术开刀,以下是CGI技术的理论:每次当客户请求一个CGI的时候,Web服务器就请求操作系统生成一个新的CGI进程。当CGI满足要求后,服务器就杀死这个进程。服务器对客户端的每个请求都要重复这样的过程。  而FastCGI技术的理论为:FastCGI程序一旦产生后,他可以持续工作,足够满足客户的请求直到被明确的终止。如果你希望通过协同处理来提高程序的性能,你可以请求Web服务器运行多个 FastCGI 应用程序的副本。

CGI就是所谓的短生存期应用程序,FastCGI就是所谓的长生存期应用程序。
由于 FastCGI程序并不需要不断的产生新进程,可以大大降低服务器的压力。并且产生较高的应用效率。
自今,较为流行的Java语言Servlet 技术在设计上是以参考FastCGI的技术运行所设计。

 

 

原创粉丝点击