Nginx 与 FPM 的工作机制[概念|图]

#首先先清楚几个概念:

FPM 是一个 PHP 进程管理器,包含 master 进程worker 进程两种进程。
master 进程只有一个,负责监听端口,接收来自 Web Server 的请求。
worker 进程则一般有多个 (具体数量根据实际需要通过配置文件修改),每个进程内部都嵌入了一个 PHP 解释器,是 PHP 代码真正执行的地方
Nginx 与 FPM 的工作机制[概念|图]
FPM运行过程
当FPM 的 master 进程接收到请求,master 进程根据配置指派特定的 worker 进程进行请求处理,如果没有可用进程,返回错误,这也是我们配合 Nginx 遇到502错误比较多的原因。
注: worker 进程处理请求,如果超时,返回504错误
请求处理结束,返回结果.

Nginx 不仅仅是一个 Web 服务器,也是一个功能强大的 Proxy 服务器,除了进行 http 请求的代理,也可以进行许多其他协议请求的代理,包括本文与 fpm 相关的 fastcgi 协议。

我们来看一个正常访问域名后的简图。
Nginx 与 FPM 的工作机制[概念|图]
在了解简图后,我们来看一个常规模型[php-fpm]过程
Nginx 与 FPM 的工作机制[概念|图]