zoukankan      html  css  js  c++  java
  • 关于nginx架构探究(1)

      nginx的架构主要是有一个主监控进程:master;三个工作进程:worker;还有Cache的两个进程。back-end-server是后端服务器,主要是处理后台逻辑。nginx作为代理服务器需要和前端web以及后端server通讯

    master大多数情况下是挂起的,直到有信号来,比如worker进程down掉了,那么会产生singnal给master进程,直到回复到初始状态,然后又被挂起。

    worker主要做的就是和后台及web端的I/O进程操作,做的是利用select,epoll_waite等进行多路复用的进程处理,以等待事件。一旦有事件发生或收到信号,worker就开始处理相关请求。

    Cache进程不处理客服端请求,也就没有I/O操作,主要处理的是超时事件。Cache加载进程,是在nginx启动的时候进行加载缓存,一次操作,以后加载进程自动退出。

    进程通信:

    nginx里面的进程通信主要有两种方式:1.socket;2.共享内存

    socket通信在nginx里面是用于父子进程的通信,至于子进程之间的通信则是采用共享内存的方式,nginx为我们提供了一整套完整的共享内存接口:

    所有的共享内存都一链表的形式链接,当我们要创建新的共享内存的时候,先查看该内存是否存在,以避免冲突。由于共享内存被多进程使用,所以

    必然用到锁机制。nginx使用slab机制对共享内存进行初始化和管理,使得共享内存方式更加高效。slab主要采用缓存和对齐方法来保证内存分配高效。

      缓存主要指的是缓存尺,对齐就是涉及到内存管理及回收机制。

      信号处理:支持与用户进行信息交互,在不中断nginx服务的情况下,讲信号量与回调函数绑定。nginx采用ngx_singal_t结构体来存储所有的信号量。

  • 相关阅读:
    js手写弹框和按钮显示
    Java类加载机制、双亲委派、Java类加载过程
    Java集合:HashMap必知必会
    查看oracle是否锁表
    消息队列Rabbit MQ 学习第一篇
    数据库blob图片文件,多图片打包下载
    HttpDebug下载
    将博客搬至CSDN
    android事件拦截处理机制详解
    回调函数
  • 原文地址:https://www.cnblogs.com/hitwhhw09/p/4607149.html
Copyright © 2011-2022 走看看