PHP – FPM的工作模式
- 什么是PHP – FPM
PHP – FPM 全称 PHP Fast-CGI Process Manager,即:PHP Fast-CGI进程管理器。
- 什么是Fast-CGI
首先了解一下什么是CGI,CGI全称Common Gateway Interface,即:通用网关接口。它把HTML页面和Web服务器中的执行程序连接起来,把HTML的Request发送到Server,Server把程序执行的结果Response到HTML页面。
示例图:
CGI遇到请求首先会创建CGI的子进程,激活一个CGI进程,然后处理请求,处理完毕后结束这个子进程。
CGI的工作模式是Fork-And-Execute,即:分岔执行模式,有多少请求就创建多少个子进程。而Fast-CGI则基于CGI上,子进程变为常驻,只要激活了就不需要再去Fork,性能比CGI更好。
- PHP – FPM的工作流程
客户端发送请求,服务器解析到是php文件把php文件通过SAPI发送到PHP-FPM,PHP-FPM的MASTER主进程派发任务到进程池,由一个子进程处理任务。子进程处理完毕后返回给服务器,服务器响应到客户端。
示例图:
注:SAPI全称Server Application Programming Interface,即:服务器应用程序接口。CGI、Fast-CGI则是包含在内。