博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FASTCGI与CGI解释器的区别,及其工作原理
阅读量:4028 次
发布时间:2019-05-24

本文共 1136 字,大约阅读时间需要 3 分钟。

http://www.cnphp6.com/archives/14919 

一、FastCGI是什么:

是一个可伸缩、高速的在web 和脚本语言间通迅的接口

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协议或方式转发到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.需要使用的系统资源更少,由于不用在每次需要时都载入解释程序,你可以将站点的传输速度提升很多而不必增加cpu负担

转载地址:http://jgobi.baihongyu.com/

你可能感兴趣的文章
container_of()传入结构体中的成员,返回该结构体的首地址
查看>>
linux sfdisk partition
查看>>
ipconfig,ifconfig,iwconfig
查看>>
opensuse12.2 PL2303 minicom
查看>>
电平触发方式和边沿触发的区别
查看>>
网络视频服务器移植
查看>>
Encoding Schemes
查看>>
移植QT
查看>>
如此调用
查看>>
计算机的发展史
查看>>
带WiringPi库的交叉编译如何处理一
查看>>
带WiringPi库的交叉笔译如何处理二之软链接概念
查看>>
Spring事务的七种传播行为
查看>>
ES写入找不到主节点问题排查
查看>>
Java8 HashMap集合解析
查看>>
ArrayList集合解析
查看>>
欢迎使用CSDN-markdown编辑器
查看>>
Android计算器实现源码分析
查看>>
Android系统构架
查看>>
Android 跨应用程序访问窗口知识点总结
查看>>