常见请求流程: 1.浏览器里输入域名 dns服务器解析域名 找到ip 2.通过ip请求web server(apache nginx iis等) 3.web server通过配置文件 发现请求文件不是静态文件,将请求转发给php-cgi程序(遵循了cgi协议的程序) fork了一个进程,php-cgi 解析php.ini、 初始化环境、处理请求、返回数据、退出进程。
每请求一次 就会走上述流程 太慢了
升级版请求流程: 1.浏览器里输入域名 dns服务器解析域名 找到ip 2.通过ip请求web server(apache nginx iis等) 3.web server通过配置文件 发现请求文件不是静态文件,将请求转发给php-fpm程序(遵循了fastcgi协议的程序,内置php-cgi,进程后台常驻,自带进程管理器) fork了一个master进程,多个worker进程(worker进程数量由配置决定),master进程 解析了php.ini、 初始化环境。worker进程(是一个php-cgi) 处理请求、返回数据。