写点什么

Nginx 原理解析

用户头像
GitHub推荐
关注
发布于: 4 小时前

文章已同步至 GitHub 开源项目: Java超神之路

master 和 worker


  • 当 linux 启动的时候,会有两个和 nginx 相关的进程,一个是master,一个是worker


master 如何工作


  • 当客户端发送请求到nginx之后,master会接收到这个请求,然后通知所有的worker进程,此时,worker会对这个请求进行争抢。某个worker抢到请求之后,就会根据设置好的步骤进行请求转发。

  • 一个master和多个worker的好处

  • 可以使用nginx -s reload热部署。 当进行热部署的时候,正常的worker会重启,但是正在处理请求的worker不会,等请求处理完毕之后,才会进行重启。

  • 对于每一个独立的worker,在进行并发的时候,不需要考虑加锁的问题。而且各个worker之间不会互相影响。降低了业务瞬间失效的可能。

worker 的设置

worker 的数量

  • nginx 和 redis 一样采用了 io 多路复用机制,每个 worker 都是一个独立的进程。每个worker的进程都会将 cpu 的性能发挥到极致。

  • 所以 worker 的数量和服务器的 cpu 数量相等是最合适的。(几核就设置几个 worker)

  • 设置少了会浪费 cpu 性能,导致处理业务请求的速度变低。

  • 设置多了会造成 cpu 频繁切换上下文带来的损耗。


文章已同步至 GitHub 开源项目: Java超神之路 更多 Java 相关知识,欢迎访问!

发布于: 4 小时前阅读数: 3
用户头像

GitHub推荐

关注

分享好玩的项目,挖掘开源的价值! 2021.07.27 加入

公众号:【GitHub推荐】

评论

发布
暂无评论
Nginx原理解析