CGI,FAST-CGI,PHP-FPM的区别

CGI,FAST-CGI,PHP-FPM的区别

http://blog.csdn.net/xsgnzb/article/details/52875331

CGI全称Common Gateway Interface即公共网关接口,它遵循cgi规范,定义了与其他服务之间的通信协议,如nginx将请求转给php时,应该携带哪些信息,header、postdata、host等等,php在处理完程序之后返回内容的格式如何等规则。

        php在使用CGI的方式启动时,在一个请求到来时,会加载php.ini文件初始化相关环境,在请求处理完之后又销毁。新请求过来时又进行一次同样的操作,消耗了服务器资源。
        为了解决这个问题,所以有了FAST-CGI的出现。
        FAST-CGI顾名思义是要提高CGI的效率,它主要处理CGI重复初始化的过程。先看下FAST-CGI的原理:
    1、Web Server 启动时加载FAST-CGI的进程管理器,如apache module
    2、FASTCGI进程管理器自身初始化,启动多个php-cgi(CGI解释器进程),并等待来自web server的链接
    3、接收到请求时,FastCgi选择并链接到一个php-cgi,将CGI的环境变量和标准输入发送到FastCgi的php-cgi进程
    4、处理完成后,php-cgi将标准输出和错误信息返回web server,并断开与FastCgi的连接,等待下一次请求接入。如果是CLI模式下,则php-cgi直接退出。
        FastCgi的缺点:
    启动多个进程,占用内存,一个php-cgi程序通常占用7-25M内存,如果在很多请求并发量下,内存消耗严重。
        PHP-CGI是FastCgi的管理进器,它的不足:
    1、修改php.ini文件要重启php-cgi才能生效,不能平滑重启
    2、直接杀死php-cgi,php不能运行

        PHP-FPM 即PHP FastCgi Process Manager,FasgCgi的进程管理器,它相对于PHP-CGI的优点:
    1、平滑重载PHP配置
    2、内存和进程控制更有效

       在./configure的时候带 –enable-fpm参数即可开启PHP-FPM。


        简单的理解,CGI和FASTCGI是通信协议V1.0和V2.0,而PHP-CGI和PHP-FPM是实现了这种协议的程序。所以处理具体请求的是PHP-CGI或PHP-FPM,它们遵循fastcgi协议。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113881.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【搜索引擎】强推!最好用资源最全的十个百度网盘搜索引擎

    【搜索引擎】强推!最好用资源最全的十个百度网盘搜索引擎1.去转盘网网址:https://www.quzhuanpan.com/点击进入网站说明:大部分资源免费,部分为VIP资源(不影响基本使用)2.盘多多网址:http://www.panduoduo.online/点击进入网站说明:搜索方便,可选择资源类型3.云盘精灵网址:https://www.yunpanjingling.com/点击进入网站说明:搜索资源后可按照最新时间显示资源4.大力盘搜索网址:https://www.dalipan.com/点击进入网站说明:页面设计简洁

    2022年5月23日
    93
  • 一次搞定js中的this指向

    一次搞定js中的this指向

    2021年7月6日
    83
  • Linux改变图片大小的命令,Linux运维知识之linux下使用convert命令修改图片分辨率…

    Linux改变图片大小的命令,Linux运维知识之linux下使用convert命令修改图片分辨率…本文主要向大家介绍了Linux运维知识之linux下使用convert命令修改图片分辨率,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。Convert的resize子命令应该是在ImageMagick中使用较多的命令,它实现了图片任意大小的缩放,唯一需要掌握的就是如何使用它的一些参数测试设定值:此说明文件中所用的原始文件(src.jpg),宽度:200,高度:150命令格式:…

    2022年7月16日
    19
  • 配置gitignore后使其生效命令

    配置gitignore后使其生效命令

    2021年10月20日
    43
  • ggplot2数据分析与图形艺术_plot画多条曲线

    ggplot2数据分析与图形艺术_plot画多条曲线接着我们之前复现过的一篇NC文章(复现《naturecommunications》散点小提琴图+蜜蜂图),有一张关于差异蛋白的火山图,但是不同的是他的阈值设定不是我们普通的横向纵向,而是曲线阈值!image.png本来我以为这是一个个例,本篇文章作者博眼球的做法,但是检索了一下发现我付肤浅了,有很多文章,但是有一个特点,双曲线阈值应用在蛋白组差异基因的筛选上,这样的方式类似与“软阈值”吧,能够找到更显著的蛋白,值得在自己的研究中使用。image.png(Reference:ProteomicsofMe

    2022年9月25日
    2
  • git分支合并及冲突解决

    git分支合并及冲突解决

    2021年10月22日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号