Nginx原理分析

一、master和worker

master相当于是一个管理员或者老板,而worker相当于是一个工人,worker可以是多个存在的。 

 

二、worker是如何进行工作的 

客户端client发送一个请求,先由管理员master拿到,然后 分发给一个或者多个worker,woker多个争抢的机制来得到客户端client的请求,然后调用对应的tomcat去进行工作。

三、一个master和多个worker的好处

1、可以使用 nginx –s reload 热部署,利用 nginx 进行热部署操作。

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

四、设置多少个worker合适 

worker 数和服务器的 cpu 数相等是最为适宜的(例如:四核的cpu,就可以设置四个worker)。

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

五、连接数worker_connection 

 1、客户端发送一个请求,占用了worker的几个连接数?

2个或4个

连接数worker_connection这个值是表示每个worker进程所能建立连接的最大值,所以,一个nginx能建立的最大连接数,应该是worker_connection * worker_processes。当然,这里说的最大连接数,对于HTTP请求本地资源来说,能够支持的最大并发数量是worker_connection * worker_processes,如果是支持http1.1的浏览器每次访问要占用两个连接数,所以普通的静态访问最大并发数是:worker_connection * worker_processes / 2,而如果是HTTP作为反向代理来说,最大并发数量应该是:worker_connection * worker_processes / 4,因为作为反向代理服务器,每个并发会建立与客户端的连接以及与后端服务器的连接(比如tomcat服务的连接),所以这是会占用两个连接。

2、nginx 有一个 master,有四个 woker,每个 woker 支持最大的连接数 1024,支持的最大并发数是多少?

(1)普通的静态访问最大并发数是: worker_connections * worker_processes /2

(2)如果是 HTTP 作 为反向代理来说,最大并发数量应该是 worker_connections *  worker_processes/4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想天涯~路在脚下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值