天天看点

(Nginx)03_Nginx原理与优化一、Nginx原理二、master-workers机制三、面试题:

03_Nginx原理与优化

  • 一、Nginx原理
  • 二、master-workers机制
  • 三、面试题:

一、Nginx原理

master–work工作模式:

(Nginx)03_Nginx原理与优化一、Nginx原理二、master-workers机制三、面试题:

配置work进程的数量:

(Nginx)03_Nginx原理与优化一、Nginx原理二、master-workers机制三、面试题:
(Nginx)03_Nginx原理与优化一、Nginx原理二、master-workers机制三、面试题:

nginx的请求处理的过程:

(Nginx)03_Nginx原理与优化一、Nginx原理二、master-workers机制三、面试题:

二、master-workers机制

nginx -s reload 热部署

每个work进程都是独立的 当一个work发生问题时  此时不会影响其他work的抢夺请求  就不会造成服务中断。
work工作中没有锁机制。 省略加锁和开锁锁带来的系统开销。 
           

在实际生产中 需要设置多少个worker:

Nginx采用了类似redis的一种io多路复用机制。该机制可以使nginx的性能达到最大化。

对于work进程 每一个进程都是异步非阻塞式的方式来处理请求。即使请求的数量再多 对于nginx来说 都是没有压力。

为了充分利用硬件CPU的性能。那么因此在实际使用中,work数量=CPU的数量

如果设置太少 造成CPU资源的浪费 如果设置太多 造成CPU的频繁切换而带来性能损耗。

当发送一个请求,占用了worker 的几个连接数:

(Nginx)03_Nginx原理与优化一、Nginx原理二、master-workers机制三、面试题:

三、面试题:

  1. 一个work可以支持1024个连接 :

    答案:2或4

    如果式静态资源 则一个请求 一个响应 连接数2

    如果式动态资源 则客户端与nginx的请求响应(2) + nginx和tomcat的连接(2) = 4

  2. nginx有一个master 有4个work 该nginx所能支持的最大并发访问数是多少?

    一个work所能支持的连接数1024

    对于普通的静态资源的访问 需要2个连接 所以此时的所能支持的最大并发访问数=(wokrer_connections * worker_processes)/2 = 2048

    对于动态资源 最大并发访问数= (wokrer_connections * worker_processes)/4 = 1024

继续阅读