嘿,你忘记写博客了~

盛年不重来,一日难再晨,及时宜自勉,岁月不待人....

php-fpm的由来与应用

发布时间:2020-09-17编辑:windydeng浏览(781)评论览(0)

    1.CGI

    是服务器与后台语言交互的协议,有了这个协议,开发者可以使用任何语言处理服务器转发过来的请求,动态地生成内容,

    保证了传递过来的数据是标准格式的(规定了以什么样的格式传哪些数据(URL、查询字符串、POST数据、HTTP header等等)),方便了开发者。

    2.fastCGI

    首先,FastCGI会先启一个master进程,解析配置文件,初始化执行环境,然后再启动多个worker进程。当请求过来时,master会传递给一个worker,然后立即可以接受下一个请求。
    这样就避免了重复的劳动,效率自然是高。
    而且当worker不够用时,master可以根据配置预先启动几个worker等着。
    当然空闲worker太多时,也会停掉一些,这样就提高了性能,也节约了资源。这就是FastCGI的对进程的管理。

     

     

    3.php-fpm

    master进程只有一个,负责监听端口,接收来自服务器的请求,而worker进程则一般有多个(具体数量根据实际需要配置),每个进程内部都嵌入了一个PHP解释器

    PHP代码真正执行的地方,下面是我本机上FPM的进程情况:1个master进程,2个worker进程

    FPM接收到请求,到处理完毕,其具体的流程如下

    1).FPMmaster进程接收到请求。

    2).master进程根据配置指派特定的worker进程进行请求处理,如果没有可用进程,返回错误,这也是我们配合Nginx遇到502错误比较多的原因。

    3).worker进程处理请求,如果超时,返回504错误。

    4).请求处理结束,返回结果。


关键字词:php-fpm的由来与应用