在介绍Nginx和PHP-FPM的工作机制之前,先了解下面几个名词:
名词解释
CGI:CGI的英文是(COMMON GATEWAY INTERFACE)公共网关接口,是 Web Server 与 Web Application 之间数据交换的一种协议。它的作用就是帮助服务器与后端语言通信,这里就是nginx和php进行通信,因为nginx和php的语言不通,因此需要一个沟通转换的过程,而CGI就是这个沟通的协议。
FastCGI:同 CGI,是一种通信协议,但比 CGI 在效率上做了一些优化。
PHP-CGI:是 PHP (Web Application)对 Web Server 提供的 CGI 协议的接口程序。
PHP-FPM:它是 FastCGI 的实现,是 PHP(Web Application)对 Web Server 提供的 FastCGI 协议的接口程序。PHP-FPM 是一个 PHP 进程管理器,包含 master 进程和 worker 两种进程:master 进程只有一个,负责监听端口,接收来自 Web Server 的请求,而 worker 进程则一般有多个 (具体数量根据实际需要配置),每个进程内部都嵌入了一个 PHP 解释器,是 PHP 代码真正执行的地方。
了解完这些名词之后,我们开始来介绍一下Nginx、PHP-FPM的工作方式,以及二者之间是如何通信的。
扫码进去看吧,里面有图,懒得一张一张上传了