Nginx两种模式模型&五种算法

Nginx进程模型:

分为master-worker模式和单进程模式。在master-worker模式下,有一个master进程和至少一个的worker进程,单进程模式顾名思义只有一个进程。

master进程的主要职责:

主要用来管理worker进程,接收来自外界的信号,向各个worker进程发送信号,监控worker进程的运行状态当worker进程退出后(异常情况下),会自动情动新的worker进程
master进程充当了真个进程组合用户的交互接口,同时对进程进行监护,他不需要处理网络事件,不负责业务执行,只会通过worker进程来实现重启服务,平滑升级,更换日志文件,配置文件生效等功能

worker进程:

worker进程相互之间是互相平等的,且有相同的几率去处理某一项事务,他们是从master进程中fork出来的吗,在他们出来之前,master会给他们分配listen的sorket,这一特性决定了他们之间的平等性。
所有worker进程的listenfd会在新连接到来时变得可读,为保证只有一个进程处理该连接,所有worker进程在注册listenfd读事件前抢accept_mutex,抢到互斥锁的那个进程注册listenfd读事件,在读事件里调用accept接受该连接。当一个worker进程在accept这个连接之后,就开始读取请求,解析请求,处理请求,产生数据后,再返回给客户端,最后才断开连接,这样一个完整的请求就是这样的了。我们可以看到,一个请求,完全由worker进程来处理,而且只在一个worker进程中处理。
响应报文结构和请求报文结构差别不大,也是四部分组成:

Nginx的负载均衡的五种算法

1.轮询模式RR(默认默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2.权重模式
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况
3.IP_hash模式 (IP散列)
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4.url_hash模式
5.fair模式
按后端服务器的响应时间来分配请求,响应时间短的优先分配。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 什么是Nginx? Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器N...
    jiangmo阅读 7,351评论 1 9
  • Nginx的工作原理 1.Nginx的模块与工作原理 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,...
    架构飞毛腿阅读 11,331评论 1 27
  • Nginx简介 解决基于进程模型产生的C10K问题,请求时即使无状态连接如web服务都无法达到并发响应量级一万的现...
    魏镇坪阅读 6,333评论 0 9
  • 我和孩子都期待了很久,终于来了。可能是我太渴望孩子的成长了,也犯了比较的错误,太渴望他融入和调整好了,对他的一些行...
    小龙先生阅读 1,697评论 0 0
  • - the little prince visits the lamplighter The fifth pla...
    remiile阅读 4,023评论 0 0

友情链接更多精彩内容