NGINX学习笔记-架构

作者: IBoya | 来源:发表于2019-07-14 17:16 被阅读2次

    Nginx的请求处理流程

    image.png

    Nginx进程结构

    image.png

    为什么nginx使用多进程而不使用多线程

    线程之间共享同一个地址空间,所以当一个第三方模块引发了一个地址空间导致的段错误时,在地址越界出现时,就会导致整个nginx进程全部挂掉

    Nginx进程管理信号

    image.png

    Nginx reload 流程

    image.png
    image.png

    老的worker在异常情况下可能不会退出,新版本中提供worker_shutdown_timeout,

    Nginx 热升级流程

    image.png image.png

    优雅的关闭worker进程

    image.png

    当在第4步 循环关闭连接时达到worker_shutdown_timeout 设置的时间时 后面的连接会直接关闭

    网络传输


    chuan shu image.png image.png

    Nginx 事件循环

    image.png

    为什么nginx 不能容忍三方模块长时间占用大量的cpu进行计算

    epoll的优劣和原理

    image.png image.png

    请求切换

    image.png

    每次进程切换 cpu消耗的时间大约5微妙

    时间片和优先级

    阻塞与非阻塞

    image.png image.png

    模块

    image.png image.png image.png

    连接池

    image.png image.png image.png

    所有worker进程协同工作的关键

    image.png image.png image.png image.png

    Nginx 容器

    image.png image.png image.png

    bucket size 对齐
    主流cpu l1 l2 l3 缓存

    红黑树

    image.png image.png image.png image.png

    相关文章

      网友评论

        本文标题:NGINX学习笔记-架构

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