Nginx系列-8 nginx 原理与优化参数配置

1、master与worker

image-20210305171608090

一个master(老板)多个worker(工人),worker做事。

image-20210305171614451

2、worker工作模式

image-20210305171620002

3、一个 master 和多个 woker 有好处

  • 可以使用 nginx --s reload 热部署,利用 nginx 进行热部署操作

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

4、设置多少个 woker 合适

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

Nginx 同 redis 类似都采用了 IO多路复用机制,每个 worker 都是一个独立的进程,但每个进程里只有一个主线程,通过异步非阻塞的方式来处理请求,即使是千上万个请求也不在话

下。每个 worker 的线程可以把一个 cpu 的性能发挥到极致。所以 worker 数和服务器的 cpu 数相等是最为适宜的。设少了会浪费 cpu,设多了会造成 cpu 频繁切换上下文带来的损耗。

5、连接数 worker_connection

这个值是表示每个 worker 进程所能建立连接的最大值,所以,一个 nginx 能建立的最大连接数,应该是 worker_connections * worker_processes。当然,这里说的是最大连接数,对于 HTTP 请求本地资源来说,能够支持的最大并发数量是

worker_connections *worker_processes,如果是支持 http1.1 的浏览器每次访问要占两个连接

  • 所以普通的静态访问最大并发数是: worker_connections * worker_processes /2

  • 而如果是 HTTP 作为反向代理来说,最大并发数量应该是 worker_connections *worker_processes/4。因为作为反向代理服务器,每个并发会建立与客户端的连接和与后端服务的连接,会占用两个连接。

注:worker_connections表示每个worker最大连接数

worker_processes 表示 worker数量

每个worker占用2个或4个连接数:静态2个,动态4个。

静态:(worker直接返回静态资源)

image-20210305171630991

动态:(worker需要请求tomcat服务器)

image-20210305171636528

感兴趣的话点点关注,我们一起成长进步。

你可能感兴趣的:(Nginx系列-8 nginx 原理与优化参数配置)