HAProxy 重点精讲 + 背诵记忆点(面试速记版)

一、基础核心定义

  1. HAProxy :高性能四层 + 七层通用负载均衡、反向代理软件
  2. 工作层级:同时支持四层 (TCP/UDP)、七层 (HTTP/HTTPS)
  3. 定位:兼顾 LVS 高性能、Nginx 丰富功能,中小型集群、中间件集群首选
  4. 特点:开源、稳定、高并发、低消耗、故障检测强

二、核心架构组成

  • 前端 frontend:接收客户端请求,配置监听端口、访问控制、规则
  • 后端 backend:挂载真实业务 RS 服务器集群
  • 监听套接字:对外暴露访问端口
  • 转发逻辑:客户端请求→frontend 匹配规则→调度至 backend 真实节点

三、核心工作模式(四层 / 七层)

1. 四层模式(TCP)

  • 仅基于IP + 端口转发,不解析应用层报文
  • 适用:MySQL、Redis、MQ、SSH 等 TCP 长连接服务
  • 转发速度快、损耗小

2. 七层模式(HTTP/HTTPS)

  • 解析应用层协议头、请求报文
  • 支持 URL 路径、Host 域名、Cookie、请求头转发匹配
  • 适用:Web 接口、微服务网关、域名拆分

四、常用负载均衡调度算法(必背)

  1. roundrobin 轮询:默认,请求均匀分发
  2. static-rr 静态加权轮询:按权重分配,权重越高流量越多
  3. leastconn 最小连接数:分给当前空闲连接最少节点,适合长连接
  4. source 源 IP 哈希:同一客户端 IP 固定访问一台后端,保持会话
  5. uri URL 哈希:按请求路径哈希绑定节点,利于本地缓存
  6. hdr(host) 按域名哈希:不同域名分发不同集群

五、核心核心功能(背诵考点)

  1. 双层级转发:四层七层一体,一套软件搞定多种转发场景
  2. 健康检查:自动探测后端节点状态,故障节点自动剔除,恢复自动加回
  3. 会话保持:源 IP、Cookie、URL 绑定会话,保证用户请求落同一节点
  4. 黑白名单:IP 访问拦截、权限限流
  5. SSL 证书卸载:统一 HTTPS 加解密,减轻业务服务器压力
  6. 日志统计监控:请求耗时、状态码、流量、节点负载监控
  7. 动静分离:静态资源、动态接口拆分转发
  8. 故障熔断、权重动态调整
  9. HTTP 重定向、请求头修改

六、HAProxy 三种主流转发场景

  1. 数据库集群:MySQL 主从、读写分离、分库代理(四层 TCP)
  2. 中间件集群:Redis、RabbitMQ、Elasticsearch 负载
  3. Web / 微服务:域名路由、接口负载、七层灰度转发

七、HAProxy 优缺点

优点

  1. 四层七层全能,通用性极强
  2. 性能优秀,并发吞吐高,稳定性极强
  3. 健康检测、故障转移机制完善
  4. 配置简洁,资源占用低
  5. 支持长连接、会话绑定、SSL 卸载

缺点

  1. 静态页面缓存能力弱,不如 Nginx
  2. rewrite 重写规则复杂度弱于 Nginx
  3. 超高流量入口场景性能略低于纯四层 LVS

八、HAProxy / LVS / Nginx 三者横向对比(面试必考)

表格

组件 工作层级 核心优势 典型场景
LVS 四层 内核转发、性能天花板、超大流量 全站入口一级负载
HAProxy 四层 + 七层 全能均衡、中间件 / 数据库首选 二级负载、数据库、MQ 集群
Nginx 七层 HTTP 功能最强、缓存、rewrite、静态服务 Web 网关、静态资源、业务反向代理

通用企业层级架构

LVS (一级四层入口) → HAProxy/Nginx (二级负载) → 业务服务 / 中间件

九、高可用部署

  1. 搭配 Keepalived 实现 HAProxy 主备集群
  2. 故障自动切换、VIP 漂移,避免单点故障
  3. 主节点承载流量,备节点待命,宕机无缝接管

十、极简背诵口诀

  1. HAProxy = 四层七层全能负载均衡
  2. 架构分前端接收、后端调度
  3. 常用算法:轮询、加权、最小连接、IP/URL 哈希
  4. 擅长数据库、中间件、Web 混合集群转发
  5. 比 LVS 功能多,比 Nginx 并发稳定性强
  6. 配合 Keepalived 消除单点故障

十一、高频面试简答

  1. **HAProxy 四层和七层区别?**四层只转发 IP 端口,不解析报文,速度快,适合数据库长连接;七层解析 HTTP 协议,可按 URL、域名路由,适合 Web 业务。

  2. **HAProxy 和 Nginx 怎么选型?**数据库、Redis、MQ 等 TCP 服务优先 HAProxy;静态资源、页面缓存、复杂 rewrite 选用 Nginx;混合业务用 HAProxy。

  3. **leastconn 算法适用场景?**长连接类服务,避免请求堆积到繁忙节点,均衡后端连接压力。

  4. **HAProxy 能否做 HTTPS 解密?**支持,可以统一配置 SSL 证书,集中完成加密解密,减轻后端服务压力。

相关推荐
Ruihong1 小时前
Vue withDefaults 转 React:VuReact 怎么处理?
vue.js·react.js·面试
kyriewen2 小时前
别再这样写 async/await 了:我在 Code Review 中见过最多的 8 个错误
前端·javascript·面试
烬羽7 小时前
字符串算法入门:从反转字符串到回文判断,面试不再慌
算法·面试
云技纵横7 小时前
一个 @Async,把 @Transactional 的事务边界打穿了
后端·面试
想要成为糕糕手8 小时前
Harness Engineering:大模型时代的“马鞍”——从记忆层开始,让AI真正为你所用
面试·ai编程·claude
kyriewen1 天前
我手写了一个 EventEmitter,面试官追问了 6 个问题——第 4 个我没答上来
前端·javascript·面试
她的男孩1 天前
后台接口加密别只会 HTTPS,ForgeAdmin 的 RSA + SM4/AES 源码拆解
后端·面试·开源
Randyliu1 天前
20260508-Agent搭建记录以及对ReAct框架的理解
面试·agent
ZzT1 天前
公司用 AI 筛简历,他写了个 AI 帮你挑公司
面试·aigc·ai编程
PBitW1 天前
GPT训练我的第四天,被打惨了!!!😭😭😭
前端·javascript·面试