美文网首页
nginx第二天,nginx模型学习

nginx第二天,nginx模型学习

作者: ant_1024 | 来源:发表于2018-04-17 22:39 被阅读39次

    今天来学习这张图片

    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.不需要创建线程

    相关文章

      网友评论

          本文标题:nginx第二天,nginx模型学习

          本文链接:https://www.haomeiwen.com/subject/gohmkftx.html