Nginx(九):nginx的原理

1. master 和 worker

在这里插入图片描述
在这里插入图片描述

2. worker 如何进行工作

在这里插入图片描述

3. 一个master和多个worker的优点

  • 可以使用nginx -s reload热部署;
  • 每个worker是独立的进程,如果其中一个worker出现问题,其他的worker继续进行争抢,实现请求过程,不会造成服务中断。

4. worker的数量设置

worker 数量和服务器的 cpu 数量相等是最为适宜的。

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

#设置 worker 数量
worker process 4

#work绑定cpu(4 work 绑定 4cpu)
worker_cpu_affinity 0001 0010 0100 1000

##work绑定cpu(4 work 绑定 8cpu中的4个)
worker_cpu_affinity 0000001 00000010 00000100 00001000

5. 连接数 worker_connection

  • 发送请求,占用了worker的 2个或者4个请求
  • nginx有一个master,四个worker,每个worker支持最大的连接数1024,支持的最大并发数为:
    • 普通的静态访问最大并发数:worker_connection * worker_processes / 2
    • http作为 反向代理,最大并发数:worker_connection * worker_processes / 4 (作为反向代理服务器,每个并发会建立与客户端的连接、与后端服务器的连接,因此会多占用两个连接)

猜你喜欢

转载自blog.csdn.net/houwanle/article/details/112132881