1.Nginx HTTP模块调用的简化流程
Nginx HTTP模块调用的简化流程图如上:
1.worker进程会循环调用事件模块检测网络事件
2. 当事件模块检测到客户端发起TCP请求时,即收到SYN包了,建立TCP连接成功后,根据nginx.conf配置交由HTTP框架处理
3.HTTP框架接收到完整的头部后将请求分发(分发策略多种多样,最常见的是根据location配置项进行匹配)到具体的HTTP模块处理
4.HTTP模块处理完,通常会返回响应,此时会依次自动调用所有HTTP过滤模块,每个过滤模块根据配置文件决定如何处理,如:gzip过滤模块会根据配置on/off决定是否进行压缩响应
5.HTT处理模块返回时将控制权交由HTTP框架,依次交还控制权,若返回时设置subrequest,则HTTP框架会继续异步调用合适的HTTP模块处理子请求
2.Nginx启动时框架的处理流程
3.HTTP框架初始化流程
实践出真知~