- Nginx服务器架构
- 主进程:Nginx配置文件解析、数据结构初始化、模块配置和注册、信号处理、网络监听生成、工作进程生成和管理等。
- 工作进程:进程初始化、模块调用和请求处理等。
- 代理转发
- 在本地缓存历史应答数据
- Nginx服务器架构示意图如下:
- Nginx服务器的进程:
- 主进程:主要功能是与外部通信和对内部其他进程进行管理。
- 读取Nginx配置文件并验证其正确性和有效性。
- 建立、绑定和关闭socket。
- 按照配置生成、管理和结束工作进程。
- 接收外界指令,比如重启、升级和关闭等指令。
- 不中断服务,实现平滑重启,应用新配置。
- 不中断服务,实现平滑升级,升级失败进行回滚处理。
- 开启日志文件,获取文件描述符。
- 编译和处理perl脚本。
- 工作进程:
- 接收客户端请求。
- 将请求依次送入各个功能模块进行过滤处理。
- IO调用,获取响应数据。
- 与后端服务器通信,接收后端服务器处理结果。
- 数据缓存,访问缓存索引、查询和调动缓存数据。
- 发送请求结果,响应客户端请求。
- 接收主进程指令,比如升级、重启和退出等指令。
- 缓存索引重建及管理进程:
- 缓存索引重建进程(Cache Loader):
- 生存时间:在Nginx服务器启动一段时间(默认是1分钟)后,由主进程生成,在缓存元数据重建完成后自动退出。
- 主要功能:根据本地磁盘上的缓存文件在内存中建立索引元数据库。
- 缓存索引管理进程(Cache Managee):
- 生存时间:一般存在于主进程的整个生命周期中。
- 主要功能:对元数据是否过期做出判断。
- 进程交互:
- Master-Worker交互和Worker-Worker交互,都依赖于管道机制。
- 具体处理查看源码??
- Run Loops事件处理循环模型:
- 木有理解。