Skip to content

HAProxy 简介

HAProxy(High Availability Proxy)是一款开源的、专为高可用场景设计的 TCP/HTTP 负载均衡器及代理服务器。它以稳定性、高效性和丰富的功能而闻名,广泛应用于互联网生产环境。

核心特性

特性说明
协议支持TCP、HTTP、HTTPS、SPDY、HTTP/2(需前端终止)
负载均衡Round Robin、Least Connections、Source Hash、URI Hash 等
健康检查TCP 层、HTTP 层主动检查,被动(4xx/5xx 计数)检查
SSL/TLS完整 SSL 终止,支持 SNI 路由、OCSP Stapling
ACL基于 IP、URI、Header、Cookie 等的访问控制
会话保持Cookie 插入、Cookie 被动、Session ID 绑定
压缩gzip / deflate 响应压缩
日志Syslog、本地文件、Stats Unix Socket

工作原理

HAProxy 通常部署在客户端和后端服务器之间,所有流量经过 HAProxy:

Client → [HAProxy] → Backend Servers

HAProxy 负责:

  1. 接收客户端请求
  2. 根据 ACL 和负载均衡算法选择后端服务器
  3. 转发请求到选定的后端
  4. 收集响应并返回给客户端
  5. 记录访问日志

HAProxy 与 Nginx 的区别

对比项HAProxyNginx
定位专业的负载均衡器Web 服务器 + 负载均衡
协议层Layer 4 (TCP) / Layer 7 (HTTP)主要 Layer 7,可做 Layer 4
调度算法8+ 种,灵活度高少数几种
健康检查内置,配置丰富被动检查为主
性能极高,专注于代理也很高,但功能更杂
配置语法声明式,相对简单块配置,稍繁

适用场景

  • 网站负载均衡:分发流量到多台 Web 服务器
  • API 网关:基于路径、Header 做路由
  • 数据库负载均衡:MySQL、PostgreSQL 读负载均衡
  • SSL 终端:集中管理 SSL 证书
  • 灰度发布:按比例或规则分流到不同版本服务
  • 防御 DDoS:结合 ACL 和限速缓解攻击

💡 HAProxy 3.3.3 是 3.x 系列的最新稳定版本,带来了多项性能优化和新功能,下一页详细介绍。