我们用用户对动态PHP网页访问过程来诠释一下

一.用户将http请求发送给nginx服务器(用户和nginx服务器进行三次握手进行TCP连接)

二.nginx会根据用户访问的URI和后缀对请求进行判断

1.用户请求的是动态内容,nginx会将请求交给fastcgi客户端,通过fastcgi_pass将用户的请求发送给php-fpm;

2.如果用户访问的是静态资源呢,那就简单了,nginx直接将用户请求的静态资源返回给用户;

三.wrapper收到php-fpm转过来的请求后,wrapper会生成一个新的线程调用php动态程序解析服务器

四.php会将查询到的结果返回给nginx

五.nginx构造一个响应报文将结果返回给用户

总结

这只是nginx的其中一种,用户请求的和返回用户请求结果是异步进行,即为用户请求的资源在nginx中做了一次中转,nginx可以同步,即为解析出来的资源,服务器直接将资源返回给用户,不用在nginx中做一次中转。第三步:fastcgi_pass将动态资源交给php-fpm后,php-fpm会将资源转给php脚本解析服务器的wrapper;

即:Nginx -> FastCGI -> php-fpm -> FastCGI Wrapper -> php解析器

相关知识

CGI是通用网关协议

FastCGI则是一种常驻进程的CGI模式程序。我们所熟知的PHP-FPM的全称是PHP FastCGI Process Manager,即PHP-FPM会通过用户配置来管理一批FastCGI进程,例如在PHP-FPM管理下的某个FastCGI进程挂了,PHP-FPM会根据用户配置来看是否要重启补全,PHP-FPM更像是管理器,而真正衔接Nginx与PHP的则是FastCGI进程。

PHP提供SAPI面向Webserver来提供扩展编程。但是这样的方式意味着你要是自主研发一套Webserver,你就需要学习SAPI,并且在你的Webserver程序中实现它。这意味着你的Webserver与PHP产生了耦合。解决耦合的办法:CGI协议,比较好的方式是有一套通用的规范,上下游都兼容它。那么CGI协议便成了Nginx、PHP都愿意接受的一种方式,而FastCGI常住进程的模式又让上下游程序有了高并发的可能。

nginx解析php详细教程,Nginx与PHP交互过程步骤详解相关推荐

  1. axure轮播图怎么设置循环轮播_Axure教程:轮播图制作步骤详解

    不管是在PC端还是移动端,轮播图是常见的设计元素.下面详细讲解轮播图的制作步骤. 作为Axure初学者,把最近学到的记录下来,和大家一起学习. 如何实现轮播图: 循环展示轮播图片: 将圆点与轮播图一一 ...

  2. python模拟登录详细教程_Python模拟登录requests.Session应用详解

    最近由于某些原因,需要用到Python模拟登录网站,但是以前对这块并不了解,而且目标网站的登录方法较为复杂, 所以一下卡在这里了,于是我决定从简单的模拟开始,逐渐深入地研究下这块. 注:本文仅为交流学 ...

  3. php解析微信接口,php微信公众平台交互与接口详解

    这篇文章主要为大家详细介绍了php微信公众平台开发,交互与接口,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文分为三大部分为大家进行介绍,具体内容如下 1.微信用户.微信服务器和后台服务器的交 ...

  4. oracle 迁库 教程,Oracle整库文件迁移步骤详解教程

    oracle双机发生切换,客户端也连接不上,原因未知,从主机上看是虚拟内存不够,整机都是在跑oracle,看情形应该从oracle上找原因. 远程连接过去之后,从alter.log发现由于磁盘空间不足 ...

  5. 编译安装Nginx步骤详解

    编译安装Nginx步骤详解 1,去Nginx官方网站下载源码包并解压 curl -O 或wget 跟下载链接 tar -xf 解压 2,进入nginx解压后的目录执行./configure - ./c ...

  6. mysql data文件夹恢复_【专注】Zabbix源码安装教程—步骤详解(2)安装并配置mysql...

    四.安装并配置mysql(1) 解压mysql-5.7.26.tar.gz与boost_1_59_0.tar.gz #tar -xvf mysql-5.7.26.tar.gz #tar -xvf bo ...

  7. php+mysql案例含源码_【专注】Zabbix源码安装教程—步骤详解(1)安装前准备

    一.实验环境准备 Rhel 7.6 x86_64(server) 192.168.163.72 Rhel 6.5 x86_64(agent) 192.168.163.61 均已配置操作安装光盘为YUM ...

  8. SAP UI5 初学者教程之二十六 - OData 服务配合 Mock 服务器的使用步骤详解试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...

  9. Android基础入门教程——2.3.1 TextView(文本框)详解

    Android基础入门教程--2.3.1 TextView(文本框)详解 标签(空格分隔): Android基础入门教程 本节引言: 学习完Android中的六大布局,从本节开始我们来一个个讲解And ...

  10. 网摘精灵教程:网摘精灵延时功能详解

    网摘精灵教程:网摘精灵延时功能详解 网摘精灵软件里面有个功能设置项是"延时",这个延时如何设置呢? 简单地说,就是发送数据一次,最多花费多久时间.这个是以秒为单位的,设置值应该是数 ...

最新文章

  1. Android Handler介绍
  2. 驱动层和r3程序通讯的列子参考爱写驱动的女装大佬
  3. python刷b站教程_python + selenium 刷B站播放量的实例代码
  4. C语言库自带的二分查找函数bsearch函数的使用示例
  5. 从选秀策略看市场测试
  6. sphinx (coreseek)——2、区段查询实例
  7. extract提取返回结果中的内容_httprunner如何提取数据串联上下游接口
  8. Uniswap 24小时交易量9.7亿美元,占以太坊上Dex总量的54%
  9. QTP统计页面加载时间
  10. 利用predis操作redis方法大全
  11. ubuntu java apt-get_ubuntu apt-get 安装jdk7
  12. HTML5标签canvas制作动画
  13. 计算机数字合成音乐,数字音乐合成原理
  14. python3 gzip解压_使用 Python 解压缩 gzip 数据流
  15. VMware中安装win7虚拟机后共享问题的解决
  16. 设置Visual Studio代码折叠
  17. 图片base64的换行问题处理
  18. html5 做屏幕保护效果,电脑屏保制作软件如何制作屏保 及如何设置屏幕保护
  19. 编程猫海龟编辑器(python)_编程猫海龟编辑器
  20. MarkDown 编辑器字体改颜色大小等常用操作

热门文章

  1. 一些常用的JavaScript的Bookmarket
  2. java ognl 值栈_ognl-值栈基本操作
  3. android进阶(三)数据存储之Internal Storage
  4. 前端模拟数据(mock数据)的方法二:使用在线mock平台(fastmock)
  5. Centos给/根分区扩容(图文讲解)
  6. hud android,Android 加载等待控件 ZFProgressHUD
  7. python如何向服务器发送文件,在Python中使用套接字向服务器发送文件
  8. jbutton如何实现点击_点击量突破22.1亿人次!这场云上祈福拜祖是如何实现的
  9. glide源码中包含了那种设计模式_Glide源码解读(一)
  10. inner join 重复数据_pandas数据合并菜谱