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 ```
';