Nginx与PHP交互过程的7步走(用户对动态PHP网页访问过程)
- step1:用户将http请求发送给Nginx服务器(用户和Nginx服务器进行三次握手进行TCP连接)。
- step2:Nginx会根据用户访问的URL和后缀对请求进行判断。
- step3:通过第二步可以看出,用户请求的是动态内容,Nginx会将请求交给fastcgi客户端,通过fastcgi_pass将用户的请求发送给PHP-fpm。如果用户访问的是静态资源呢,那就简单了,Nginx直接将用户请求的静态资源返回给用户。
- step4:fastcgi_pass将动态资源交给PHP-fpm后,PHP-fpm会将资源转给PHP脚本解析服务器的wrapper。
- step5:wrapper收到PHP-fpm转过来的请求后,wrapper会生成一个新的线程调用PHP动态程序解析服务器。
- step6:PHP会将查询到的结果返回给Nginx。
- step7:Nginx构造一个响应报文将结果返回给用户。
这只是Nginx的其中一种,用户请求的和返回用户请求结果是异步进行,即为用户请求的资源在Nginx中做了一次中转,Nginx可以同步,即为解析出来的资源,服务器直接将资源返回给用户,不用在Nginx中做一次中转。
即:Nginx -> FastCGI -> PHP-fpm -> FastCGI Wrapper -> PHP解析器
以上7个就是交互的简单步骤,感谢大家的学习和对我们的支持。