php-fpm的由来与应用
发布时间:2022-03-11编辑:windydeng浏览(2544)评论览(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).FPM
的master进程
接收到请求。
2).master进程
根据配置指派特定的worker进程
进行请求处理,如果没有可用进程,返回错误,这也是我们配合Nginx
遇到502
错误比较多的原因。
3).worker
进程处理请求,如果超时,返回504
错误。
4).请求处理结束,返回结果。
关键字词:php-fpm的由来与应用
上一篇:
Redis缓存穿透和缓存雪崩以及解决方案
下一篇:
分布式锁的三种实现方法
暂无评论