游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

17Nginx入门教程Nginx的基础架构解析(上)

  1。Nginx的进程模型
  前面介绍Nginx时有介绍过Nginx的进程模型。Nginx启动时首先启动一个Master进程,然后由Master进程启动一个或者多个Worker子进程。Master进程主要完成配置读取,通过发送信号控制Worker进程的启动和停止等,而Worker子进程是用来处理客户端发来的Http请求,且Worker进程之间会通过共享内存进行通信。1。1worker进程处理请求过程
  假设Nginx启动了多个Worker进程,并且在Master进程中通过socket套接字监听80端口。这些Worker进程fork自Master进程,然后每个worker进程都可以去accept这个监听的socket。当一个连接进来后,所有在accept在这个socket上面的进程,都会收到消息,但是只有一个进程可以accept这个连接,其它的则accept失败,这便是所谓的惊群现象。Nginx处理这种情况的方式就是加锁。有了锁之后,在同一时刻,就只会有一个Worker进程在accpet连接,这样就不会有惊群问题了。在Worker进程拿到Http请求后,就开始按照前面介绍的11个阶段处理该Http请求,最后返回响应结果并断开连接。1。2Nginx命令行的处理流程
  最早我们学习了Nginx命令行操作,这些命令行操作都是给Master进程发信号,然后再由Master进程发送信号给Worker进程,从而达到控制Worker进程的目标。我们以Nginx的热部署命令。nginxsreload来描述Nginx命令行的执行流程。具体过程如下:首先Master进程会检查nginx。conf文件是否存在语法错误,并从中找到nginx。pid配置路径(没有配置会使用默认值)reload参数表示向Master进程发送HUP信号。Nginx会根据会保存在nginx。pid文件中的值找到Master进程的pid。如果Nginx进程没有启动,则没有该nginx。pid文件,命令行会报错;在Nginx的配置文件中配置nginx。pid的保存路径〔rootserversbin〕。nginxsreloadnginx:〔error〕open()rootnginxlogsnginx。pidfailed(2:Nosuchfileordirectory)Master进程打开新的监听端口;Master进程用新配置启动新的Worker进程。新的Worker进程起来后,开始接收Http请求并处理,此时老的Worker进程会停止接受Http请求;Master进程会向老的Worker进程发送QUIT信号;老的Worker进程关闭监听句柄,处理完正在进行的请求后结束进程。
  Nginx命令行中s参数的每个值都对应这一个信号。因此,我们也可以直接对Master进程发生相应信号达到同样的目的。pid表示Nginx的主进程id号kills信号pid2。Nginx的事件驱动模型2。1事件驱动模型
  事件驱动模型是实现异步非阻塞的一个手段。对于web服务器来说,客户端A的请求连接到服务端时,服务端的某个进程(Nginx的worker进程)会处理该请求,此进程在没有返回给客户端A结果时,它又去处理了客户端B的请求。服务端把客户端A以及客户端B发来的请求作为事件交给了事件收集器,而事件收集器再把收集到的事件交由事件发送器发送给事件处理器进行处理。最后事件处理器处理完该事件后,通知服务端进程,服务端进程再把结果返回给客户端A、客户端B。在这个过程中,服务端进程做的事情属于用户级别的,而事件处理这部分工作属于内核级别的。也就是说这个事件驱动模型是需要操作系统内核来作为支撑的。2。2Nginx的事件驱动模型介绍
  Nginx的事件驱动模型,支持select、poll、epoll、rtsig、kqueue、devpoll、eventport等。最常用的是前三种,特别是epoll模型,这也是Nginx中的默认配置。可以说epoll模型成就了Nginx的高性能和高并发特性。select模型:创建所关注事件的描述符集合,对于一个描述符,可以关注其上面的读(Read)事件、写(Write)事件以及异常发生(Exception)事件。在select模型中,要创建这3类事件描述符集合。调用底层提供的select()函数,等待事件发生。轮询所有事件描述符集合中的每一个事件描述符,检查是否有相应的事件发生,如果有就进行处理。poll模型:poll模型是Linux平台上的事件驱动模型,在Linux2。1。23中引入的,Windows平台不支持该模型。poll模型和select模型工作方式基本相同,区别在于,select模型创建了3个描述符集合,而poll模型只创建一个描述符集合。epoll模型:epoll模型属于poll模型的变种,在Linux2。5。44中引入。epoll比poll更加高效,原因在于它不需要轮询整个描述符集合,而是Linux内核会关注事件集合,当有变动时,内核会发来通知。正式这种异步,非阻塞、IO多路复用的事件驱动模型,才使得Nginx有很高的运行效率。3。案例3。1Nginx进程模型实验
  按照前面的讲解,我们测试给Nginx的Master进程直接发送信号,并观察进程情况:确认没有Nginx进程〔rootserversbin〕psefgrepnginxroot1060310137014:23pts200:00:00grepcolorautonginx启动Nginx〔rootserversbin〕。nginx可以看到Nginx启动的进程〔rootserversbin〕psefgrepnginxroot106401014:23?00:00:00nginx:masterprocess。nginxroot1064210640014:23?00:00:00nginx:workerprocessroot1064310640014:23?00:00:00nginx:workerprocessroot1064410640014:23?00:00:00nginx:cachemanagerprocessroot1064510640014:23?00:00:00nginx:cacheloaderprocess
  可以看到Nginx启动了Master进程(pid10640),后由Master进程fork除了两个Worker进程和两个Cache进程,他们的父进程id均为10640。现在做如下几个操作:关闭进程号等于10642的Worker进程〔rootserversbin〕sudokillSIGTERM10642〔rootserversbin〕psefgrepnginxroot106401014:23?00:00:00nginx:masterprocess。nginxroot1064310640014:23?00:00:00nginx:workerprocessroot1064410640014:23?00:00:00nginx:cachemanagerprocessroot1086910640014:32?00:00:00nginx:workerprocessroot1093910137014:32pts200:00:00grepcolorautonginx
  可以看到原先的Worker进程被杀死后,Nginx的主进程又立马拉起来一个新的Worker进程提供服务。这说明Nginx是非常可靠的,只要Master进程还在就会保证Worker进程持续存在并提供服务。向主进程发送SIGHUP信号,等价于sreload操作。可以看到除了Master进程外,所有其他进程已经是新启动的进程了。〔rootserversbin〕sudokillSIGHUP10640〔rootserversbin〕psefgrepnginxroot106401014:23?00:00:00nginx:masterprocess。nginxroot1105910640014:37?00:00:00nginx:workerprocessroot1106010640014:37?00:00:00nginx:workerprocessroot1106110640014:37?00:00:00nginx:cachemanagerprocessroot1109810137014:37pts200:00:00grepcolorautonginx向主进程发生SIGTERM信号,等价于sstop操作,即停止Nginx服务,关闭所有进程〔rootserversbin〕sudokillSIGTERM10640〔rootserversbin〕psefgrepnginxroot1126710137014:43pts200:00:00grepcolorautonginx向主进程发生USR1信号,等价于srepoen操作,即重新打开日志文件〔rootserversbin〕。nginx〔rootserversbin〕psefgrepnginxroot114081014:48?00:00:00nginx:masterprocess。nginxroot1141011408014:48?00:00:00nginx:workerprocessroot1141111408014:48?00:00:00nginx:workerprocessroot1141211408014:48?00:00:00nginx:cachemanagerprocessroot1141311408014:48?00:00:00nginx:cacheloaderprocessroot1148410137014:49pts200:00:00grepcolorautonginx〔rootserversbin〕ll。。logsaccess。logrwrr1rootroot384349Feb1114:26。。logsaccess。log〔rootserversbin〕rmrf。。logsaccess。log〔rootserversbin〕ll。。logsaccess。logls:cannotaccess。。logsaccess。log:Nosuchfileordirectory〔rootserversbin〕killUSR111408〔rootserversbin〕ll。。logsaccess。logrwrr1rootroot0Feb1114:50。。logsaccess。log
  可以看到,在移除Nginx的access。log日志后,在向Nginx主进程发送USR1信号,Nginx会重新生成一个新的access。log日志。4。小结
  本节主要介绍Nginx的进程模型以及介绍了Master和Worker之间的通信过程。此外,我们介绍了Nginx的事件驱动模型。异步、多路IO复用、非阻塞等特点早就了Nginx的高性能。接下来,我们完成了Nginx进程模型的几个实验,直观体检Nginx的进程模型。下一节将重点介绍Nginx模块相关的内容,并手动实现一个简单的http模块。

爱上你治愈我热播蔡鹭颠覆性演技受好评星关系5月9日讯由曹盾、程樯指导,青年人气演员窦骁、苗苗、彭冠英领衔主演,金士杰、潘虹、蔡鹭、赵魏等重磅加盟的都市心理健康题材电视剧《爱上你治愈我》正在热播中。该剧以一家私立医……小骑士!冲啊海口开机D7少年团钟文杰化身小骑士奶爸星关系4月25日讯据悉,全新益智综艺《小骑手!冲啊》于近日在海口正式开机,《小骑手!冲啊》是一档大型儿童平衡车运动主题励志成长节目,节目通过平衡车运动来展现孩子们优秀的运动体质……继承者计划迎最惨烈生死阴谋王彦霖背锅被埋命悬一线由刘闯执导,王彦霖、李欣燃、郑家彬、杨皓宇领衔主演,张国柱特别出演的金牌卧底题材悬疑喜剧《继承者计划》正在搜狐视频热映,由王彦霖饰演的冒牌卧底李金水一上线就陷入了一连串火烧眉毛……故事里的中国第二季动人回归胡先煦成首位00后雷锋饰演者《故事里的中国》第二季是中央广播电视总台推出的文化类节目。节目由田沁鑫担任戏剧总导演。旨在通过戏剧影视综艺的综合表达方式,演绎经典片段、访谈主创人物、再现真实故事背后的情感力量……棋魂开启百人围棋大战胡先煦火力全开迎战各路棋手由爱奇艺出品,厚海文化、小糖人传媒联合出品,小糖人传媒承制,戴莹、朱振华、赵文竹担任总制片人,刘畅执导,胡先煦、张超、郝富申、韩沐泊、翟冠华、纪李等主演的少年热血棋幻剧《棋魂》……从电子游戏是精神鸦片说开去下午一个新闻看乐了我了新华网将《精神鸦片竟长成数千亿产业》文章删除。然而,这也挡不住游戏股午后的大幅跳水,这篇原文刊载在经济参考报的文章顺网科技跳水跌超12,恺英网络、迅游科技……三星折叠屏手机ZFlip3发布,功能再完善,这次实用性大加强一年发布两款折叠屏手机已是三星的传统节目,一款ZFold,另一款便是ZFlip,这个系列同样推出了第三代产品,或许也是大部分电子消费人群眼中最接近理想形态的折叠手机。Fl……打败三星,一年狂卖200亿的非洲手机之王,竟要在中国上市!小米之后,又一个中国手机即将上市!惊奇的是,国内90的人甚至还没见过它!英雄不问出处,它称得上是华为、小米、OV之外,另一场传奇!逆天的四卡四待、能解决黑人自……电视剧老男孩萧晗扮演者胡先煦个人资料电视剧《老男孩》由刘俊杰执导,高蓉蓉编剧,刘烨、林依晨主演。《老男孩》讲述了桀骜老男孩吴争,人至不惑之年经历爱与成长的故事。剧中刘烨与林依晨是一对欢喜冤家,老男孩吴争(刘烨饰)……好好施展你的iPadPro,会用!它就是犹如笔电般的卓越生产笔歌科技独家报道:如果你问笔歌:今年让你推荐两款你认为最值得拥有的数码产品,你会推荐哪两个?笔歌一定会讲MacBooKAir和新款iPadPro。01为什么说是新款iPa……电商征税影响全面分析一觉醒来,电商征税最高45新闻刷爆,其实从电商发达的浙江被定义为共同富裕示范区开始,电商征税其实已是大势所趋。我来帮大家分析下电商征税到底有哪些影响:1、对实体门店影响:……苹果屈服了,无需支付30的分成?AppStore允许第三方支天下苦苹果税久已,今年年初的时候,数码盖饭写过一篇文章【华为VS腾讯,抽成太狠谈崩了!其中你不知道的细节】,就详细说了苹果税,即苹果手机上APP的收入iOS会抽掉30。更严谨的……
华为鸿蒙正式上线,这些功能比安卓强华为鸿蒙系统(HarmonyOS)大家应该不陌生吧。在2019年8月9日,华为在东莞举行的开发者大会上,公布了全新操作系统鸿蒙。鸿蒙系统并不只限于手机,它的定位是全……京东方供应商富恒新材终止精选层挂牌辅导石油涨价或致其成本压力每经记者:李少婷每经编辑:杨夏3月18日晚间,新三板创新层挂牌公司富恒新材披露公告称,鉴于公司战略发展的需要,经综合考虑,拟调整上市进度及方案,已于当日向证监会深圳监管局……把UC卖马云套现300亿,37岁拿全部家当来造车,何小鹏成功文璋队长编辑璋队长何小鹏,小鹏汽车、UC优视联合创始人。2004年何小鹏与合伙人共同创办UC优视公司,随后10年他带领团队打造UC浏览器,用户突破5亿,……阿里美团都被反垄断罚款,你觉得这些平台利大于弊还是弊大于利?时代的产物事物的发展逻辑本就如此。目前是利大于弊,为什么,首先存在就是理由,为什么利大,你把所有网络关了试试,那多少企业不适应,多少人不适应,甚至国家都难以运转,电商,网……为什么拼多多的投影机那么便宜?拼多多的营销方式涉嫌骗人。因为那只是为吸引眼球。说一个投影机9。9元,绝对不是像淘宝那样直接下单购买,而是你要发朋友圈,你可能把朋友都发尽了,也未必买得来这款投影机。浪费了大量……借贷将引发危机时代伴随着科技进步,人民生活水平日惭提高,全民经商,自媒体时代浪潮席卷而来,极大地改变了人们的生活方式和消费习惯,低头族们随便刷一下机,不管有钱没钱,只要抵不住网上诱惑,想要的东西……小米公司正式发布新机,9月30号全渠道开售,定价仅2599元早期手机厂商们即将发布新机之前,都会特别注重保密,有关新机的外观与配置信息都会等到发布会那一天才公开,但是现如今不少手机厂商们渐渐发现这种策略并不好,与其一天公布所有信息,还不……荣耀6nm强机上线,66W快充,8128G卖2199在最开始,华为和荣耀都还在是一家时。不仅可以说它们两个手机厂商在国内已经没有对手,就连国外也差不多。而后面,由于华为手机厂商太过强大,收到不能由台积电工电生产5G芯片的禁令,不……为什么游戏党宁愿为了显卡等上好几年也不买PS5?加价入手ps5将近一年,这两天又因为即将上线的老头环升级了电脑,花费不菲,以下是对比,也是原因。我算是比较早一批上steam的,当时dota2刚出就入了steam的坑,至……8点1氪丨孟晚舟昨夜顺利回国广电总局坚决抵制含有不良情节动画大公司孟晚舟昨夜顺利回国9月25日,孟晚舟乘坐中国政府包机回到祖国,与家人团聚。自2018年12月1日她被捕,至2021年9月24日离开加拿大,已1028天。(人民……最近想下载个linux系统,不知道哪个好点,ubuntu还是Ubuntu和Deepin的内核都是标准的Linux内核。Deepin的操作界面和操作习惯会更加符合国人的使用习惯,建议下载Deepin。(对操作系统都熟悉的高手勿喷,那个系统……新能源车怎么选领克06PHEV值得一看近年来,新能源车在终端市场越来越受到消费者的青睐,对消费者而言,较低的用车成本;在一线城市更易获得号牌;更平顺的动力输出都是新能源车的优点。但需要注意的是,目前在新能源车市场,……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网