`

三 FastCGI与CGI解释器的区别,及其工作原理

阅读更多
一、FastCGI是什么:
是一个可伸缩、高速的在web server和脚本语言间通迅的接口

CGI工作原理:每当客户请求CGI的时候,WEB服务器就请求操作系统生成一个新的CGI解释器进程(如php-cgi.exe),当CGI满足要求后,WEB服务器就杀死这个进程。
    所以,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以 提供良好的性能、伸缩性、Fail- Over特性等等。
    FastCGI的官方站点在http://www.fastcgi.com

FastCGI的工作原理是:
  1、Web Server 启动时载入FastCGI进程管理器【PHP的FastCGI进程管理器是PHP-FPM(php-FastCGI Process Manager)】。
  2、FastCGI进程管理器自身初始化,启动多个CGI解释器进程 (在任务管理器中可见多个php-cgi.exe)并等待来自Web Server的连接。启动php-cgi FastCGI进程时,可以配置以TCP和UNIX套接字(socket)两种方式启动。
  3、当客户端请求到达Web Server时,Web Server将请求采用TCP协议或socket方式转发到FastCGI主进程,FastCGI主进程选择并连接到一个CGI解释器(子进程php-cgi.exe)。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi.exe。
   4、FastCGI子进程php-cgi.ex完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在 WebServer中)的下一个连接。 而在CGI中,php-cgi子进程在此便被退出了。

  在上述情况中,你可以想象 CGI通常有多慢。每一个Web请求PHP都必须重新解析php.ini、重新载入全部dll扩展并重初始化全部数据结构。使用FastCGI,所有这些 都只在进程启动时发生一次。一个额外的好处是,持续数据库连接可以工作。
可以令PHP程序从原来的请求-启动-运行到请求-运行模式,大大提高了脚本的执行效率,减轻服务器的负荷。

二:PHP的FastCGI的优点:
1.php脚本运行速度更快,php解释程序被载入内存而不是每次需要时从存储器读取,极大提升了依靠脚本运行站点的性能。
2.需要使用的系统资源更少,由于服务器不用在每次需要时都载入php解释程序,你可以将站点的传输速度提升很多而不必增加cpu负担。


ref:http://blog.csdn.net/m13666368773/article/details/8017673
分享到:
评论

相关推荐

    FastCGI For IIS6.0

    FastCGI的工作原理与传统的CGI不同。在传统的CGI模式下,每当Web服务器收到一个请求,就会启动一个新的CGI进程来处理该请求,处理完后立即关闭。这种模式虽然简单,但频繁的进程创建和销毁带来了较大的系统开销。...

    cgi资源合集

    这个资源合集提供了一些关于CGI的经典电子书和课件,对于学习和理解CGI工作原理及其应用非常有价值。 CGI的核心概念是将用户通过浏览器发送的HTTP请求转发给服务器上的一个可执行程序(CGI脚本),这个脚本处理请求...

    Fastcgi中文手册

    FastCGI通过保持解释器进程在内存中运行的方式显著提高了效率,避免了频繁的进程创建和销毁过程。 **核心特点:** 1. **长期运行机制**:FastCGI允许程序持续运行,而不是为每个请求重新启动。 2. **分布式计算...

    CGI介绍及使用Python来开发CGI应用示例

    尽管它已经不是主流的选择,但了解CGI的工作原理及其开发方法仍然具有一定的价值。 #### CGI的介绍 CGI是一种用于定义Web服务器如何与外部应用程序进行交互的标准协议。通过CGI,Web服务器可以接收HTTP请求并将这些...

    IIS6下PHP的ISAPI和FastCGI性能比较 期待ii7

    FastCGI虽然也进行了性能优化,但由于其与ISAPI的实现机制不同,需要额外的进程管理器来管理CGI解释器进程,这可能会带来额外的开销。因此,在IIS 6上,FastCGI相较于ISAPI的优势并不明显。然而,在IIS 7中,由于...

    PHP+FastCGI+Nginx配置PHP运行环境

    让我们深入理解这三个组件的工作原理及其配置过程。 首先,CGI(Common Gateway Interface)是一个标准,使得Web服务器可以与各种动态脚本语言(如PHP)进行通信。然而,传统的CGI在处理高并发请求时效率较低,因为...

    php讲解的文档

    - **数据传输**:HTML数据通过CGI或FastCGI协议从PHP解释器返回给Web服务器。 - **CGI协议**:一种早期的数据交换协议,允许Web服务器与外部应用程序进行通信。 - **FastCGI协议**:一种改进版的CGI协议,提高了效率...

    PHP4.0 Web开发技术指南

    11. CGI和FastCGI:这两种模式用于在Web服务器和PHP解释器之间通信,理解它们的工作原理有助于优化服务器性能。 12. 错误日志和性能分析:学会查看和分析错误日志,以及使用工具进行性能监控,有助于找出代码中的...

    PHP连接Nginx服务器并解析Nginx日志的方法

    FastCGI通过持续运行的进程解决了传统CGI技术中每次请求都重新启动解释器的低效问题,大幅提高了性能。FastCGI进程在服务器上持续运行,减少了进程启动时间,从而快速响应请求。 #### Nginx+PHP-FPM的优势 将Nginx...

    Python部署web开发程序的几种方法

    本文将深入探讨几种常见的Python Web应用程序部署方法,包括FastCGI、HTTP代理、uWSGI、mod_python、CGI、spawn-fcgi、SCGI、Gunicorn以及mod_wsgi,帮助开发者更好地理解每种方法的工作原理及其应用场景。...

Global site tag (gtag.js) - Google Analytics