一、FastCGI是什么?
FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要 行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存 中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail-Over特性等等。
    FastCGI的官方站点在http://www.fastcgi.com
  FastCGI的工作原理是:  

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,而不是多线程CGI解释器?
这可能出于多方面的考虑,例如:
1、你无论如何也不能在windows平台上稳定的使用多线程CGI解释器,无论是IIS ISAPI方式还是APACHE Module方式,它们总是运行一段时间就崩溃了。奇怪么?但是确实存在这样的情况!
当然,也有很多时候你能够稳定的使用多线程CGI解释器,但是,你有可能发现网页有时候会出现错误,无论如何也找不到原因,而换用FastCGI方式时 这种错误的概率会大大的降低。我也不清楚这是为什么,我想独立地址空间的CGI解释器可能终究比共享地址空间的形式来得稳定一点点。
2、性 能!性能?可能么,难道FastCGI比多线程CGI解释器更快?但有时候确实是这样,只有测试一下你的网站,才能最后下结论。原因嘛,我觉得很难讲,但 有资料说在Zend WinEnabler的时代,Zend原来也是建议在Windows平台下使用FastCGI而不是IIS ISAPI或Apache Module,不过现在Zend已经不做这个产品了。

三、不使用FastCGI的理由
1、多进程比多线程消耗更多的服务器内存,php-cgi.exe解释器每进程消耗7至25兆内存,将这个数字乘以50或100试试。
2、性能。确实有时候多线程CGI解释器更快,呵呵,而且有时候,它也很稳定。

Fastcgi是什么相关推荐

  1. php 5.4 iis6,WIN2003+IIS6+FastCGI+PHP5.4的安装配置

    说明:PHP5.5已不支持win2003了,Win2003最高能安装PHP5.4 一.安装好IIS 二.下载并安装IIS FastCGI 下载地址:http://www.iis.net/downloa ...

  2. php-cgi 重启,自动监测和重启 FastCGI 服务

    昨天有个服务器出了点小问题,PHP FastCGI 进程无缘无故就死在那里了,造成 Nginx 不能和 FastCGI 通信,不能解析 PHP 页面,只能看到 Nginx 的 默认 HTML 页面.登 ...

  3. 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?

    原文地址:http://www.mike.org.cn/articles/what-is-cgi-fastcgi-php-fpm-spawn-fcgi/ 什么是CGI CGI全称是"公共网关 ...

  4. 从奥运订票系统说起——谈FastCGI 与IT 架构

    2008年,对于首都人民来说,没有什么比奥运会更大的事情了.如何买到一张称心如意的比赛门票,也成了很多人的一个梦想.然而,在奥运官网抢票购买的时候,这个梦想却轻易地被网上购票系统的当机击成碎片,很多充 ...

  5. php安装模式mod_php和Fastcgi的选择与对比

    安装php又面临到了模式的选择,以前都是选择mod_php模式,因为这样安装比较方便哈,今天突然关心起FastCGI这种模式,败毒了一把,找到了一些关于mod_php和Fastcgi的选择与对比这方面 ...

  6. FAST-CGI安装与使用

    FastCGI 像是一个常驻 (long-live) 型的 CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去 fork 一次 (这是 CGI 最为人诟病的 fork-and-execute ...

  7. IIS7入门之旅:(3)CGI application和FastCGI application的区别

    前言: 一如既往地,IIS支持通过提供pluggable module来提供对第3方script的支持,例如php等.在IIS7中,对于CGI的支持有了一个新的变化,就是同时提供了2种CGI支持模块, ...

  8. Nginx与PHP(FastCGI)的安装、配置、优化

    一.什么是 FastCGIFastCGI是一个可伸缩地.高速地在HTTP server和动态脚本语言间通信的接口.多数流行的HTTP server都支持FastCGI,包括Apache.Nginx和l ...

  9. php fastcgi配置_IIS7.5配置php(FastCGI)- 自动配置

    操作系统是 Windows 2008 R2(Windows7),IIS版本是7.5,php版本是 php-5.3.2-Win32-VC9-x86(安装包),数据库是 mysql-5.5.12-win3 ...

最新文章

  1. Android消息向下堆积,android - 从CoordinatorLayout中的按钮单击事件触发NestedScroll折叠动作 - 堆栈内存溢出...
  2. JS中使用工厂模式创建对象
  3. 【C语言进阶深度学习记录】三 浮点数(float) 在内存中的表示方法
  4. 用好MySQL的21个好习惯!
  5. SpringBoot——slf4j+logback日志处理及配置详解
  6. hadoop安装笔记-cdh4
  7. 《天天数学》连载37:二月六日
  8. Hadoop生态圈介绍
  9. Spring中使用JdbcTemplate和HibernateTemplate的数据库操作
  10. java小数正负数据类型_Java - day001 - 8种基本数据类型
  11. Java方法重载解析
  12. 利用Adams对单摆进行建模、仿真的动力学分析
  13. 【清纯可爱女孩win7主题】
  14. ElasticSearch入门手册
  15. order by case when 使用方法
  16. mysql分区替换,MySQL交换分区的实例详解
  17. wordpress面包屑-wordpress面包屑设置方法
  18. 实体类[notmapped]特殊 “The specified type member ‘‘ is not supported in LINQ to Entities. Only...
  19. RF基础(一) RF内建函数库BuiltIn
  20. [MOOC]物联网技术笔记-2.物联网的概念和特征

热门文章

  1. 计算机网络技术社团纳新海报,精品社团纳新 | 加入计算机协会和我一起做些有意义的事儿吧~...
  2. PHP 毫秒级定时器,实现php毫秒定时器方法详解
  3. 使用Pyhthon,OpenCV和ZBar构建移动的条码扫描器
  4. Python Qt GUI设计:QDrag拖拽数据传输类(基础篇—18)
  5. 大意!6行代码,“报废”5片单片机!
  6. 2. 编程规范和编程安全指南--C/C++
  7. 深度学习--TensorFlow(6)神经网络 -- 拟合线性函数非线性函数
  8. 【神经网络】(16) MobileNetV3 代码复现,网络解析,附Tensorflow完整代码
  9. python拟合曲线(小批量随机梯度下降)
  10. vs 插件小番茄 visual assist x破解版 破解教程下载