HAProxy
最后更新于:2022-04-02 03:02:43
[TOC]
> [参考:知乎](https://zhuanlan.zhihu.com/p/359918708)
## 概述
- HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上
- HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力
- HAProxy具备媲美商用负载均衡器的性能和稳定性
**HAProxy的核心功能**
- 负载均衡:L4和L7两种模式,支持RR/静态RR/LC/IP Hash/URI Hash/URL_PARAM Hash/HTTP_HEADER Hash等丰富的负载均衡算法
- 健康检查:支持TCP和HTTP两种健康检查模式
- 会话保持:对于未实现会话共享的应用集群,可通过Insert Cookie/Rewrite Cookie/Prefix Cookie,以及上述的多种Hash方式实现会话保持
- SSL:HAProxy可以解析HTTPS协议,并能够将请求解密为HTTP后向后端传输
- HTTP请求重写与重定向
- 监控与统计:HAProxy提供了基于Web的统计信息页面,展现健康状态和流量数据。基于此功能,使用者可以开发监控程序来监控HAProxy的状态
推荐使用场景
* 使用3.x内核的Linux操作系统运行HAProxy
* 运行HAProxy的主机上不要部署其他的应用,确保HAProxy独占资源,同时避免其他应用引发操作系统或主机的故障
* 至少为HAProxy配备一台备机,以应对主机硬件故障、断电等突发情况(搭建双活HAProxy的方法在后文中有描述)
* sysctl的建议配置(并不是万用配置,仍然需要针对具体情况进行更精细的调整,但可以作为首次使用HAProxy的初始配置使用):
```
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 1024 65023
net.ipv4.tcp_max_syn_backlog = 10240
net.ipv4.tcp_max_tw_buckets = 400000
net.ipv4.tcp_max_orphans = 60000
net.ipv4.tcp_synack_retries = 3
net.core.somaxconn = 10000
```
';