zoukankan      html  css  js  c++  java
  • nginx的工作流程

    nginx请求处理流程

    nginx进程结构

    master进程:是作为worker进程管理的

    worker进程:处理真正的请求的而master进程则是管控这些进程的工作方式的;缓存是在多个worker进程共享数据的;进程间通信使用共享内存解决的,请求使用的缓存有worker管控的

    cache magager进程 :缓存管理

    cache loader 进程:缓存载入

    nginx设计的哲学理念:为什么多进程而非多线程;因为线程之间是共享同一个进程空间的,当第三方模块出现异常时会导致nginx挂掉,而多进程就不会出现这样的问题

    为什么worker进程会很多:因为nginx采用事件驱动的模型,它希望每个worker进程从头到尾占用一颗cpu,往往把worker进程数量配置根worker进程一致以外,还需要把每个worker进程与CPU绑定在一起,这样可以更好使用每个cpu上的CPU缓存,来减少缓存失效命中率。

     nginx进程间的信号管理

    reload流程

    1.向master进程发送HUP信号(reload)

    2.maseer 进程校验配置语法是否正确

    3.master进程打开新监听的端口

    4.master进程用新配置启动worker子进程

    5.master进程向老worker子进程发送quit信号

    6.老worker进程关闭监听句柄,并处理完当前连接后退出结束进程

     热升级完整流程

    1.将就的nginx文件缓存新的nginx文件。注意备份,及编译新版本nginx指定的路径要与就版本中一致

    2.向master进程发送USR2信号

    3.master进程会自己修改PID文件名,加后缀.oldbm

    4.master进程用新的NGINX文件启动新的master进程

    5.向老master进程发送quit信号,关闭老master进程;但老的master进程会保存下来

    6.回滚:向老的master发送HUP,向新master发送QUIT信号

    流程图

    针对HTTP请求优雅关闭work进程,如果设置了超时时间有一些连接会立即停止

    网络收发与nginx的事件对应关系;一个网络连接对应两个事件一个读事件一个写事件

    网络传输中的报文

    TCP协议与非阻塞接口

    nginx事件循环

    epoll模型

    草都可以从石头缝隙中长出来更可况你呢
  • 相关阅读:
    UVA 10462 Is There A Second Way Left?(次小生成树&Prim&Kruskal)题解
    POJ 1679 The Unique MST (次小生成树)题解
    POJ 2373 Dividing the Path (单调队列优化DP)题解
    BZOJ 2709 迷宫花园
    BZOJ 1270 雷涛的小猫
    BZOJ 2834 回家的路
    BZOJ 2506 calc
    BZOJ 3124 直径
    BZOJ 4416 阶乘字符串
    BZOJ 3930 选数
  • 原文地址:https://www.cnblogs.com/rdchenxi/p/10977063.html
Copyright © 2011-2022 走看看