Nginx的模块和运行机制
Nginx的模块和运行机制
1.Nginx模块
- 核心模块:实现底层的通信协议,构建基本的运行环境
- 功能模块
- 事件模块:定义了事件处理的响应逻辑及定时器
- 阶段处理模块:负责处理请求并响应内容
- 过滤模块:负责出来输出内容,对特定的客户端请求做出访问限制
- 上游模块:实现反向代理
- 负载均衡模块:事件负载均衡
2.运行机制
Nginx启动时,会创建1个master进程,和多个work进程,work进程由master进程进行管理。一般cpu有几个核,就生成多少个work进程
![](https://blog.hanstary.com/file/46.png)
当受到请求就会交给work进程处理,work进程使用异步非阻塞事件监听机制,而传统的web服务器(如tomcat)使用同步事件监听机制,而work使用的异步非阻塞事件监听机制跟节省资源
(1)同步事件监听机制
web服务器会为每一个请求建立一个独立的进程或线程,这一种机制会造成堵塞等待
![](https://blog.hanstary.com/file/47.png)
当没有请求时,线程会一直处于堵塞等待状态,浪费资源
(2)异步非阻塞事件监听机制
异步处理将接受请求和处理请求进行了异步操作,这样节省资源,尽量的避免了堵塞等待
![](https://blog.hanstary.com/file/48.png)