nginx第二天,nginx模型学习

今天来学习这张图片


1.nginx在启动后,会有一个master进程和多个worker进程。master进程主要用来管理worker进程。 

2.master进程:

    (1)接受外界的信号,向各worker进程发送信号,

    (2)监控worker进程的运行状态,当worker进程退出后,会自动重新启动新的worker进程。

3.worker进程:

    (1)多个worker进程之间是对等的,他们同等竞争来自客户端的请求,各进程之间是独立的。

    (2)一个请求,只可能在一个work进程中处理,一个worker进程,不可能处理其他进程的请求。

     (3)worker进程的个数是可以设置的。一般我们会设置与机器cpu核数一致,

4.nginx从容地重启

       (1)命令 kill-HUP pid 

        (2)何为从容地重启:服务不中断。

        (3)nginx的处理流程:

                a.master进程接收信号,重新加载配置文件

                b.重新启动新的进程,并向所有老的进程发送信号,告诉他们退休了,

                c.新的进程开始接收消息,而老进程收到master进程发送信号就不再收新的请求。


5.worker进程如何处理消息的

    (1)每个worker进程都可以去accept这个socket,sokcet不是同一个,但是都监控着同一个ip地址与端口,

     (扩展)socket同时监控一个ip和端口,有一个成功,其他失败这种现象称为惊群现象。

     (2)nginx提供了一把锁accept_mutex,用来给accept一把共享锁。默认是打开的

6.nginx采用进程模型的好处

        1.对于每个worker进程来说,独立的进程,不需要加锁,省掉了锁的开销

        2.编程以及查问题上方便

        3.采用独立进程,可以互相之间不影响,服务不中断。降低风险


7.nginx如何处理事件

        重点记住:采用异步非阻塞的方式来处理的事件

        流程:请求过来,建立链接接收数据,再发送数据,具体底层就是读写事件,


8.nginx效率高的主要原因

        1,异步非阻赛,不用等待

        2.减少了不必要的上下文切换

        3.不需要创建线程

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,930评论 24 1,002
  • 什么是Nginx? Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器N...
    jiangmo阅读 7,353评论 1 9
  • Nginx的工作原理 1.Nginx的模块与工作原理 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,...
    架构飞毛腿阅读 11,348评论 1 27
  • 序 本篇会把连接(CONNECT)、心跳(PINGREQ/PINGRESP)、确认(CONNACK)、断开连接(D...
    技术学习阅读 13,375评论 0 8
  • 本篇文章具体对该社会化SDK进行了源码解析。增加大家对该SDK设计的理解,方便大家自己fork,持续集成开发。 具...
    Tsy远阅读 6,857评论 0 4

友情链接更多精彩内容