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

你可能感兴趣的:(nginx第二天,nginx模型学习)