Nginx基本原理!
Nginx基本原理!
月伴飞鱼Nginx 启动之后,在 Linux 系统中有两个进程,一个为 master,一个为 worker。
master 作为管理员不参与任何工作,只负责给多个 worker 分配不同的任务(worker一般有多个)。
worker是如何工作的?
客户端发送一个请求首先要经过 master,管理员收到请求后会将请求通知给 worker。
多个 worker 以争抢的机制来抢夺任务,得到任务的 worker 会将请求经由 tomcat 等做请求转发、反向代理等。
一个 master 和多个 worker 的好处?
可以使用
nginx -s reload
进行热部署。每个 worker 是独立的进程,如果其中一个 worker 出现问题,其它 worker 是独立运行的。
会继续争抢任务,实现客户端的请求过程,而不会造成服务中断。
设置多少个 worker 合适?
Nginx 和 redis 类似,都采用 IO 多路复用机制,每个 worker 都是一个独立的进程,每个进程里只有一个主线程。
通过异步非阻塞的方式来处理请求,每个 worker 的线程可以把一个 cpu 的性能发挥到极致。
因此,worker 数和服务器的 cpu 数相等是最为适宜的。