Nginx采用的是一对多(one master/multi workers)的进程池模型。
写者注
进程池:动态创建-销毁进程很明显会增加开销。如果有10亿用户,那创建-销毁10亿进程去提供服务很明显开销很大。那不如让服务器提前生成子进程。
一般来说,nginx有1个主进程(master)和多个子进程(worker)对外提供服务。主进程又称为监控进程,只负责接收UNIX信号以及管理监控子进程。
子进程要干的活就比较多了。比如:与其他子进程通过一些算法(比如RR,随机算法)竞争与客户端的连接,执行nginx的业务逻辑,处理TCP/HTTP请求。
当子进程因为某些原因意外终止时,主进程会创建新的子进程,从而保证进程池的稳定。
后续会提到configure(配置文件)。在配置文件中你可以设置子进程的数目(一般和CPU核心数相同。毕竟进程切换也会增加开销。)以及子进程的最大连接数等。