每种动态语言的代码文件需要通过对应的解析器才能被服务器识别,而 CGI 协议就是用来使解释器与服务器可以互相通信。由于 CGI 的机制是每处理一个请求需要 fork 一个 CGI 进程,请求结束再kill掉这个进程,在实际应用上比较浪费资源,于是就出现了CGI 的改良版本 FastCGI,FastCGI 在请求处理完后,不会 kill 掉进程,而是继续处理多个请求,这样就大大提高了效率。PHP-FPM 即 PHP-FastCGI Process Manager, 它是 FastCGI 的实现,并提供了进程管理的功能。进程包含 master 进程和 worker 进程两种;master 进程只有一个,负责监听端口,接收来自服务器的请求,而 worker 进程则一般有多个,每个进程内部都会嵌入一个 PHP 解释器,是代码真正执行的地方。当我们访问一个网站的时候,处理流程是这样的:。通过以上配置即可完成 php-fpm 与 nginx 的通信。

PHP-FPM和Nginx的通信机制详解

PHP-FPM和Nginx的通信机制详解

PHP-FPM和Nginx的通信机制详解