首先Nginx 服务是不能处理动态请求,那么当用户发起动态请求时**, Nginx**又是如何进行处理的。
当用户发起http 请求,请求会被Nginx 处理,如果是静态资源请求Nginx 则直接返回,如果是动态请求Nginx 则通过fastcgi 协议转交给后端的PHP程序处理,具体如下图所示
|-----------------------| | Nginx与Fast-CGI 详细工作流程 |
1.用户通过http
协议发起请求,请求会先抵达LNMP
架构中的Nginx
2.Nginx
会根据用户的请求进行判断,这个判断是有Location
进行完成
3.判断用户请求的是静态页面,Nginx
直接进行处理
4.判断用户请求的是动态页面,Nginx
会将该请求交给fastcgi
协议下发
5.fastgi
会将请求交给php-fpm
管理进程, php-fpm
管理进程接收到后会调用具体的工作进程warrap
6.warrap
进程会调用php
程序进行解析,如果只是解析代码php
直接返回
7.如果有查询数据库操作,则由php
连接数据库(用户 密码 IP)发起查询的操作
8.最终数据由*mysql->php->php-fpm->fastcgi->
nginx->http->user