一文看懂执行请求原理
概述
有玩过nginx的朋友肯定常听说的cgi,phpcgi,fastcgi,phpfpm,那他们之间到底是什么关系,下面帮助大家了解下nginxphp执行请求的工作原理。
cgi协议
CGI不是一门编程语言。它是网页的表单和你写的程序之间通信的一种协议。可以用任何语言写一个CGI脚本,这些语言只要能接收输入输出信息,读取环境变量。所以,几乎所有的编程语言都能写一个CGI脚本,例如:python(把我大python放在第一个!),C,甚至是shell脚本。
CGI是一种通信协议,它把用户传递过来的数据转变成一个kv的字典。这个字典中不光有用户的数据,还有HTTP协议的参数。它做的就是把数据,组织成一个固定结构形式的数据。方便任何符合CGI协议的程序都可以调用!但是CGI不是负责通信(传输数据)的,通信的话是通过socket,也就是server,例如上面例子中,是通过Apache进行通信。之后调用CGI脚本,把数据转变成符合CGI协议的数据结构,用于后面的数据处理!
总之,cgi协议用来确定webserver(例如nginx),也就是内容分发服务器传递过来什么数据,什么样格式的数据。
phpcgi进程解释器
phpcgi是php的cgi协议进程解释器,每次启动时,需要经历加载php。ini文件amp;gt;初始化执行环境amp;gt;处理请求amp;gt;返回内容给webserveramp;gt;phpcgi进程退出的流程。
fastcgi协议
fastcgi协议是对cgi协议效率提升的补充,主要是针对每次请求过来时都需要启动一个cgi解释器进程的优化,不再需要cgi解释器进程每次收到webserver请求后都需要重新加载php。ini文件和初始化执行环境。
phpfpm进程管理器
phpfpm是对fastcgi协议的实现,是进程管理器,启动时包括master和worker进程俩部分,master进程监听端口,接收来自webserver请求,worker进程一般具有多个,每个worker进程都有一个cgi进程解释器,用来执行php代码。
phpfpm有两种执行方式,与Apache一样,它的进程数也是可以根据设置分为动态和静态的,一种是直接开启指定数量的phpfpm进程,不再增加或者减少;另一种则是开始的时候开启一定数量的phpfpm进程,当请求量变大的时候,动态的增加phpfpm进程数到上限,当空闲的时候自动释放空闲的进程数到一个下限。
这两种不同的执行方式,可以根据服务器的实际需求来进行调整。
php启动和工作原理
启动phpfpm时,会启动master进程,加载php。ini文件,初始化执行环境,并启动多个worker进程。每次请求来时会将请求传递给worker进程进行处理
php平滑重启原理
每次修改完php。ini配置并重启后,会启动新的worker进程加载新的配置,而之前已经存在的进程会在工作完成之后销毁,因此实现平滑重启
nginx工作原理
如果想弄明白nginx和php配合的原理,还需要先了解nginx的配置文件中的server部分。
server{listen80;监听80端口,接收http请求servername;一般存放网址,表示配置的哪个项目roothomewwwrootzensmallpublic;存放代码的根目录地址或代码启动入口indexindex。phpindex。html;网站默认首页当请求网站的url进行location的前缀匹配且最长匹配字符串是该配置项时,按顺序检查文件是否存在,并返回第一个找到的文件location{tryfiles,按顺序检查文件是否存在,返回第一个找到的文件uri代表不带请求参数的当前地址querystring代表请求携带的参数tryfilesuriuriindex。php?querystring;按顺序检查uri文件,uri地址是否存在,如果存在,返回第一个找到的文件;如果都不存在,发起访问index。php?querystring的内部请求,该请求会重新匹配到下面的location请求}当请求网站的php文件的时候,反向代理到phpfpm去处理location。php{includefastcgiparams;引入fastcgi的配置文件fastcgipass127。0。0。1:9000;设置phpfastcgi进程监听的IP地址和端口fastcgiindexindex。php;设置首页文件fastcgiparamSCRIPTFILENAMEdocumentrootfastcgiscriptname;设置脚本文件请求的路径}}
上面server配置的整体含义是:每次nginx监听到80端口的url请求,会对url进行location匹配。如果匹配到规则时,会进行内部请求重定向,发起index。php?querystring的内部请求,而对应的location配置规则会将请求发送给监听9000端口的phpfpm的master进程。
总结
下面总结下最简单的用户请求流程:
大致如下:用户访问域名amp;gt;域名进行DNS解析amp;gt;请求到对应IP服务器和端口amp;gt;nginx监听到对应端口的请求amp;gt;nginx对url进行location匹配amp;gt;执行匹配location下的规则amp;gt;nginx转发请求给phpamp;gt;phpfpm的master进程监听到nginx请求amp;gt;master进程将请求分配给其中一个闲置的worker进程amp;gt;worker进程执行请求amp;gt;worker进程返回执行结果给nginxamp;gt;nginx返回结果给用户。
后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下
教研公约改变的是学校的教研基因北京教育学院附属海淀实验小学有一个每位教师都熟知且执行的教研公约,共8条99字:1。每个人都发言且内容不重复;2。以学习的态度观课;3。发言有案例支撑,少说空话;4。每人每次发……
测试他心里有没有你你喜欢的人有多在乎你准备好了吗?测试开始1、即便和某人关系不融洽,也不会影响你的心情吧?是的2不是3还好42、如果对方要求你做些过分的事情,一定会问清理由吗?……
优生优育男性要做些什么不要认为生育是妻子一个人的事情,其实丈夫的责任更重要,宝宝的健康跟精子的质量有很大的关系,凡是影响精子质量的因素,做丈夫的都要积极地避免。那么优生优育男性要做些什么呢?下面就跟……
酒吧火灾自动报警系统设计注意事项火灾事故的发生,对人们的生命财产均会造成极大危害。因此,公共场所预防火灾事故的发生,就显得尤为重要。作为人员密集的酒吧来讲,预防火灾事故更是当务之急。安装火灾自动报警系统或是火……
准确无误造句用准确无误造句大全61、事实上,坚持唱收唱付,就能使整个收费过程变成一个核算和自检的过程,能帮助收费员集中注意力准确无误地完成收费工作流程,确保收费工作的质量。62、以前,商人卖米时会用一……
不会说话易招惹祸患熟记七个技巧受用无穷弘一法师,俗名李叔同,生于天津,圆寂于泉州,是中国近现代佛教史上的一位高僧。弘一法师说:修己以清心为要,涉世以慎言为先。弘一法师的这句话不无道理:语言是传达感情的工……
冬天我们要如何减肥如果你已经准备好一定要瘦的心情了,那么就一定要坚持了。把每天的食物安排好苹果就是主食,大家应该都知道苹果三天的减肥方法。但是这个减的比较狠,对身体不是很好。所以,大家要是没有足……
姓何的女孩子名字可爱姓何女孩好听的名字何姓在我国也是一个人口比较多的姓氏了,何姓的起源可以说是非常的悠久,源流也有众多,而且在历史上也有不少何姓的历史名人。给宝宝取一个好听的名字是很多父母的一个非常重要的愿望了,毕……
读书分享导航设计面包屑先谈一下面包屑的由来:很久很久以前,在大森林的边上住着一个贫穷的樵夫,他妻子和两个孩子与他相依为命。他的儿子名叫汉赛尔,女儿名叫格莱特。后来樵夫的妻子去世了,他又给孩子们……
除了我要自学网这个知乎万人热推的自学学而不止,高而愈下。朝九晚五的生活已经让很多人都疲惫不堪,即便是有些人想要学习一些技能,也没有时间和精力。但今时不同往日,除了在培训班还能在网站进行学习。小面下面就分享几……
杜甫写下首诗词的大唐诗圣如何从富李白和杜甫,闪耀在大唐诗歌界的双子星。前者洒脱浪漫,好像青春豪气永驻。后者愁情悲苦,总似暮年烈心消弭。其实,杜甫比李白小了整整11岁。他们皆是才气干云、仕途不……
蓝颜色的故事我最喜欢蓝色,世界上最多的颜色就是蓝色:天空是蓝色的,海洋是蓝色的,蓝无处不在。我有一次完全融入蓝色世界的经历,那是在三亚的亚龙湾。亚龙湾的天空,是万里无云的蓝,干净、透……
热文大雪节气有哪些风俗近日大雪节气有哪些风俗登录上了百度热搜,受到广大网友们的关注,那么关于目前的大雪节气有哪些风俗相信小伙伴们都是想要了解到最新的信息吧,小编也是在网上进行了一些整理,收集到了一些……
中方回应美出台70多页抗中报告这两天关于中方回应美出台70多页抗中报告在网上的热度是非常高的,很多网友们也都是非常关注中方回应美出台70多页抗中报告这个事情,为此小编也是在网上进行了一番搜索查阅相关的信息,……
热文甘肃载30人大巴坠入农家院近日甘肃载30人大巴坠入农家院登录上了百度热搜,受到广大网友们的关注,那么关于目前的甘肃载30人大巴坠入农家院相信小伙伴们都是想要了解到最新的信息吧,小编也是在网上进行了一些整……
看好局势经历过经济周期后,才会意识到什么是市场震荡我对经济形势一直持太过正面的看法,相信未来是乐观的。我必须承认我们是黄金10年起来的企业,对经济下滑没有任何体验,更无从准备,对……
很有才的家长和孩子1、我一同学旧手表坏了,他满心欢喜地视频告诉他爸爸,想要让他爸爸给他买一个新的打通电话后他说:爸,我的手表坏了!只听他爸洪亮地回答:现在9点半!2、女儿:爸爸……
热文14岁男孩身高221厘米近日14岁男孩身高221厘米登录上了百度热搜,受到广大网友们的关注,那么关于目前的14岁男孩身高221厘米相信小伙伴们都是想要了解到最新的信息吧,小编也是在网上进行了一些整理,……
热文四川14岁男孩高221厘米近日四川14岁男孩高221厘米登录上了百度热搜,受到广大网友们的关注,那么关于目前的四川14岁男孩高221厘米相信小伙伴们都是想要了解到最新的信息吧,小编也是在网上进行了一些整……
热文14岁男孩高221厘米近日14岁男孩高221厘米登录上了百度热搜,受到广大网友们的关注,那么关于目前的14岁男孩高221厘米相信小伙伴们都是想要了解到最新的信息吧,小编也是在网上进行了一些整理,收集……
张家界有哪些地方特色美食小吃?这两天关于张家界有哪些地方特色美食小吃?在网上的热度是非常高的,很多网友们也都是非常关注张家界有哪些地方特色美食小吃?这个事情,为此小编也是在网上进行了一番搜索查阅相关的信息,……
腾讯手机管家怎么样(腾讯手机管家值得信任吗)全球手机安全软件横评报告:腾讯手机管家排第一,你用的哪款?手机现在已经是沉浸在每个人生活之中的电子产品,它的安全性无异于家门钥匙。很多人可能觉得手机和电脑不同没有那么多病……
热文教育孩子的心得体会家庭教育心得体会总结近日教育孩子的心得体会家庭教育心得体会总结登录上了百度热搜,受到广大网友们的关注,那么关于目前的教育孩子的心得体会家庭教育心得体会总结相信小伙伴们都是想要了解到最新的信息吧,小……
热文u盘读不出来怎么办U盘无法识别怎么办近日u盘读不出来怎么办U盘无法识别怎么办登录上了百度热搜,受到广大网友们的关注,那么关于目前的u盘读不出来怎么办U盘无法识别怎么办相信小伙伴们都是想要了解到最新的信息吧,小编也……