Nginx的进程有Master进程和Worker进程。
Master负责分配请求任务,Worker负责执行具体的任务。
一个Master对应多个Worker,当一个任务出现的时候,Master下的多个空闲的Worker参与争抢任务。
真是因为一个Master下有多个Worker,才能保证Nginx可以不重启直接重新加载配置文件,当执行nginx -s reload的时候,空闲的Worker会重启,工作的Worker还是按照原来的配置运行,当它处理完之后,它也会按照新的配置进行重启,所以Nginx才能不停机更新。
Worker的数量应该与CPU数量相等,这样才能把Nginx的服务发挥到极致。
一个请求会占用2个或者4个Worker的连接数。
2个:客户端→Worker和Worker→客户端
4个:如果有动态资源,Worker和Tomcat之间还有一对连接数
静态资源的最大并发数:worker_connection * worker_process / 2。
如果是作为反向代理,最大并发数:worker_connection * worker_process / 4。