原创

nginx原理

1.master 和 worker

  

2.worker如何进行工作的

  

3.一个master和多个worker有哪些好处

(1)可以使用nginx -s reload 热加载方式,可以热部署nginx

(2)首先对于每个worker进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销,同时在编程以及问题查找时,也会方便很多。其次,采用独立的进程,可以让互相之间不会影响,一个进程退出后,其他进程还在工作,服务不会中断,master进程则很快启动新的worker进程。当然,worker进程的异常退出,肯定是程序有bug了,异常退出,会导致当前worker伤的所有请求失败,不过不会影响到所有请求,所以降低了风险。


4.需要设置多少个worker

nginx同redis类似都采用了io多路复用机制,每个worker都是一个独立的进程,但每个进程里只有一个主线程,通过异步非阻塞的方式来处理请求。即使是成千上万个请求也不在话下。每个worker的线程可以把一个cpu的性能发挥到极致。所以worker数和服务器的cpu数相等是最为适宜的。设置少了会浪费cpu,设置多了会造成cpu频繁切换上下文带来的损耗。

#设置worker数量

#设置worker数量
worker_processes 4


5.连接数worker_connections
第一个:发送请求,占用了worker的几个连接数?

答案:2个或4个,当访问静态资源的时候,是2个,访问tomcat的时候是4个

  

2个

 

4个


第二个问题:nginx有一个master,有4个worker,每个worker支持最大的连接数是1024,那么该nginx支持最大多大的并发?

4*1024/2

答案:普通的静态访问最大并发数是:worker_connections * worker_processes/2,而如果是http作为方向代理来说,最大并发数是worker_connections * worker_processes/4.



正文到此结束
本文目录