Nginx服务之IO模型
纸上得来终觉浅,绝知此事要躬行。

1. 多路处理模型
多路处理模型(MPM)是将模块结构化,针对不同的环境进行优化。
Prefork
- 实现了一个非线程型的、预派生的Web服务器。
- 一般适合波动比较大的网站,可以将最大进程数调大,应对突发的大访问量。但不能超过服务器的最大负荷,因为派生子进程也会消耗资源,可能会导致服务器的雪崩效应。
Worker
- 使用了多进程,每个进程再派生出多个线程,处理用户请求。
- 一般适合波动不大的网站,指定启动的进程数和线程数,因为大访问的时候可能会超过设置的m*n数量导致后续响应无法处理。但是,比较合理的做法是对每个worker分配合理的负荷。
event
- event模型是worker模型的变种,产生多个进程,每个进程响应多个请求。
- 它将服务器进程从连接中分离出来,在开启KeepAlive场合下相对于worker模式能够承受更高的并发负载。