Nginx
Nginx 是一个高性能的 HTTP 和反向代理服务器,同时也支持 IMAP/POP3 协议。
它以高并发、低内存占用、模块化设计、异步非阻塞 I/O而著称,是现代网站架构中的核心组件。
Nginx原理架构
Nginx采用多进程模型,包含一个Master进程、和多个Worker进程。
整体架构,如下图所示:
角色 | 职责 |
---|
Master进程 | 加载配置、启动/重启 Worker、信号管理 |
Worker进程 | 处理客户端请求、连接读写、模块执行等 |
Master进程:
Nginx启动时,首先启动Master进程。
Master进程的主要职责是:
- 加载和解析配置文件(nginx.conf)。
- 管理Worker进程,包括:启动、停止和重启Worker进程。
- 处理来自操作系统的信号,例如:重新加载配置或平滑升级。
- Master进程本身不处理客户端请求。
Worker进程:
Master进程启动后,会创建多个Worker进程。
每个Worker进程独立运行,负责处理客户端的实际请求。
Worker进程之间互不干扰,这提高了Nginx的稳定性和并发处理能力。
Worker进程的数量通常根据CPU核心数进行配置,以充分利用硬件资源。
Nginx工作原理:
整体工作流程,如下:
首先,接收请求。
当客户端发起请求时,Worker进程会接收该请求。
然后,解析请求。
Worker进程解析请求,包括HTTP头部、URI等。
然后,处理请求。
根据配置文件中的指令,Nginx将请求交给相应的模块处理。
处理过程可能包括:
- 静态资源服务:直接返回静态文件。
- 反向代理:将请求转发给后端服务器。
- 负载均衡:将请求分发到多个后端服务器。
- 缓存:从缓存中返回响应。
然后,生成响应。
处理完成后,Nginx生成HTTP响应。
最后,发送响应。
Worker进程将HTTP响应发送给客户端。