• 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模型

    草都可以从石头缝隙中长出来更可况你呢
  • 相关阅读:
    5:《地牢守卫者》代码分析:EnemyController
    4:《地牢守卫者》代码分析:Enemy
    1:《地牢守卫者》代码解析PlayerController
    0:地牢守卫者开发框架
    7:《地牢守卫者》代码分析:DarkElf,DrakElfController
    6:《地牢守卫者》代码分析:GoblinPawn,GoblinController
    ABAP学习(1):基本语法介绍
    项目实例:车辆信息统计报表管理系统导出PDF怎么调样式?
    软件制作:模拟登陆之WebBrowser
    编程经验:邮件发送接收
  • 原文地址:https://www.cnblogs.com/rdchenxi/p/10977063.html
Copyright © 2020-2023  润新知