nginx原理解析day09

标签(空格分隔): nginx



文章目录

  • nginx原理解析day09
  • 1.master&worker
  • 2.work如何进行工作(机制介绍)
  • 3.一个master和多个worker有什么好处
  • 4.设置多少worker合适
  • 5.设置worker数量
  • 6.连接数worker_connection

1.master&worker

nginx热部署和热升级 nginx热部署原理_tomcat


nginx热部署和热升级 nginx热部署原理_tomcat_02


master发放工作

2.work如何进行工作(机制介绍)

客户端发出请求到nginx中给master,master告诉worker,worker通过争抢机制获得任务,(nginx本身不支持java操作,需要依赖tomcat)然后再访问tomcat完成具体任务

nginx热部署和热升级 nginx热部署原理_nginx热部署和热升级_03

3.一个master和多个worker有什么好处

1.可以使用nginx -s reload 热部署,利于ngixn进行热部署操作

2.每个worker是独立的进程,如果有一个出现问题,其他还可以继续进行争抢,实现请求过程,不会造成服务中断

4.设置多少worker合适

nginx同redis类似都采用了io多路复用机制,每个worker都是一个独立的进程,但每个进程只有一个主线程,通过异步非阻塞的方式来处理请求,即使再多请求也没问题。
每个worker的线程可以把一个cpu的性能发挥到极致,所以worker数和服务器的cpu数相等最为适宜。少了浪费,多了损耗。

5.设置worker数量

worker_processes 4
 # work绑定cpu(4work绑定4cpu)
 worker_cpu_affinity 0001 0010 0100 1000# work绑定cpu(4work绑定8cpu中的4个)
 worker_cpu_affinity 00000001 00000010 00000100 00001000

6.连接数worker_connection

这个值表示每个worker进程所能建立连接的最大值,所以,一个nginx能建立的最大连接数,应该是worker_connections * worker_processes.

这里所说的最大连接数,对于HTTP请求本地资源来说,能够支持的最大并发数是worker_connections * worker_processes 如果是支持http1.1的浏览器每次访问要占两个连接,所以普通的静态访问最大并发数 要/2,而如果是HTTP作为反向代理来说,最大并发数/4,因为作为反向代理服务器,每个并发会建立与客户端的连接和与后端服务器的连接,会占用两个连接。