PHP-FPM的一些理解

作者: 2901f67ad1c9 | 来源:发表于2017-02-24 15:17 被阅读157次

    PHP-FPM 是PHP FastCGI Process Manager的简称。
    CGI是指通用网关接口,其实就是HTTP服务器分发请求的接收程序(比如PHP解释器),同时它也规范了”分发-接收“这一通讯过程的格式。比如Nginx分发动态请求给PHP解释器(PHP解释器就是一个CGI),可能需要POST参数,HTTP headers参数等,这些都在CGI中有标准化规范。
    FastCGI是为了提升CGI速度而生的,CGI速度慢在每次处理请求都要做一些解析配置和初始化环境的工作,而FastCGI实现了对CGI的有效管理——通过master进程把任务分配给worker进程,减少CGI进程的初始化(解析php.ini等)、创建、销毁等开销。
    所以PHP解释器只是一个php-cgi,而PHP-FPM按着FastCGI协议,加强了对php-cgi的管理,实现了常驻内存,并且被PHP官方认可,纳入PHP内核。
    PHP-FPM支持配置的平滑变更是通过新的配置在新的worker中生效完成的。而mod模式Apache无法平滑变更是因为每个Apache进程都需要加载mod_php,解释模块和HTTP服务绑定在了一起,无法实现分离,变更配置只得重启。
    值得一提的是,Apache这样的内置mod方式,也减少了通讯消耗,速度更快。

    相关文章

      网友评论

        本文标题:PHP-FPM的一些理解

        本文链接:https://www.haomeiwen.com/subject/ntjwwttx.html