nginx设计框架
nginx主进程(master进程)作为管理进程,不做I/O处理;主进程会启动相同的子进程(work进程)来处理I/O。每个work进程都监听80端口,互不干扰,从而达到负载均衡。如下图所示:
当然,nginx这样设计的好处还有:
- 充分利用多核CPU,每个work进程绑定一个CPU核(CPU的亲缘性)
- 分工明确,主进程管理多个子进程,子进程负责业务逻辑
- 一个work进程故障,不会影响整个系统
- 可进行热更新(主进程接收到更新信号后,会通知work进程处理完当前的业务后,不再处理I/O;同时重新启动4个work进程,等旧的进程处理完当前的业务后,自动关闭旧的4个work进程)
- 多进程之间共享内存