1)、FastCGI进程管理器(php-fpm)自身初始化,启动主进程php-fpm和启动start_servers个CGI 子进程。
主进程php-fpm主要是管理fastcgi子进程,监听9000(这个根据配置文件的监听端口改变而变)端口。
fastcgi子进程等待来自Web Server的连接。
2)、当客户端请求到达Web Server nginx是时,Nginx通过location指令,将所有以php为后缀的文件都交给127.0.0.1:9000来处理,即Nginx通过location指令,将所有以php为后缀的文件都交给127.0.0.1:9000来处理。
3)FastCGI进程管理器PHP-FPM选择并连接到一个子进程CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程。
4)、FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。
5)、FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在 WebServer中)的下一个连接。
重点:每一个子进程CGI中, 每个进程内部都嵌入了一个PHP解释器
工作流:请求->nginx->php-fpm->fastcgi(worker)
转载于知乎https://www.zhihu.com/question/40658804?sort=created