首页  >  文章  >  后端开发  >  Nginx+Php-fpm运行原理详解

Nginx+Php-fpm运行原理详解

移动用户-8334543
移动用户-8334543原创
2022-06-16 16:43:47131浏览

一、用户对动态PHP网页访问过程

step1:用户将http请求发送给nginx服务器
step2:nginx会根据用户访问的URI和后缀对请求进行判断
step3:通过第二步可以看出,用户请求的是动态内容,nginx会将请求交给fastcgi客户端,通过fastcgi_pass将用户的请求发送给php-fpm
如果用户访问的是静态资源呢,那就简单了,nginx直接将用户请求的静态资源返回给用户。
step4:wrapper收到php-fpm转过来的请求后,wrapper会生成一个新的线程调用php动态程序解析服务器
step5:php会将查询到的结果返回给nginx
step6:nginx构造一个响应报文将结果返回给用户

cgi协议

cgi 通讯协议

fastcgi协议

fastcgi协议是对cgi协议效率补充提升,主要是针对每次请求过来时都需要启动一个cgi解释器进程的优化,不再需要cgi解释器进程每次收到webserver请求后都需要重新加载php.ini文件和初始化执行环境

php-fpm进程管理器

php-fpm是对fastcgi协议的实现,是进程管理器,启动时包括master和worker进程两部分,master进程负责管理worker进程,worker进程一般具有多个,用来监听端口,接收来自webserver请求,且每个worker进程都有一个cgi进程解释器,用来执行php代码

tcp有哪五层协议?

应用层、传输层、网络层、数据链路层、物理层

谈谈tcp三次握手?

1. 客户端向服务端发送一个连接请求报文段,其中SYN设置为1,并随即选择一个起始序号seq=x

2. 服务端收到请求报文段后,向客户端发送一个确认报文段,其中SYN和ACK设置为1,确认号字段为x+1,并生成一个起始序号seq=y

3. 当客户端收到确认报文段后,还要再向服务端一个确认报文段,其中ACK设置为1,确认号字段为y+1,序号字段为x+1

注:SYN为同步序号,ACK为确认序号标志

nginx接到请求,根据监听端口找到要访问的php文件,并通过socket与其中一个常驻内存fast-cgi程序建立连接,并将接收到的数据传给fast-cgi,php-fpm管理fast-cgi进程,挂了后就再启动起来,fast-cgi执行php程序,完成数据的获取后再通过该连接返回给nginx,返回到用户client。

cookie和session有什么区别?

1. cookie存储在浏览器上,session存储在服务器上

2. 别人可以分析本地的cookie从而进行cookie欺骗,考虑安全性应用session

3. 单个cookie的存储限制是4k,而浏览器对session没有限制

以上是Nginx+Php-fpm运行原理详解的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn