HAProxy 是一款开源软件,由法国开发者 Willy Tarreau 在2000年使用C语言开发,它是一款具备高并发、高性能的TCP和HTTP负载均衡器。HAProxy 支持基于cookie的持久性、自动故障切换,以及正则表达式和web状态统计。
前提条件
确保所有主机的防火墙均为关闭状态。
环境搭建
克隆三台虚拟机 RHEL9.4,分别为 haproxy、webserver1、webserver2 三台主机。
- haproxy:网卡 eth0、IP 为 172.25.254.100、主机名为 haproxy.example.com
- webserver1:网卡 eth0、IP 为 172.25.254.10、主机名为 webserver1.example.com
- webserver2:网卡 eth0、IP 为 172.25.254.20、主机名为 webserver2.example.com
在两台 webserver 上安装 nginx:
同样步骤对 webserver2 进行操作,只是将内容改为 。
HAProxy 基本配置
HAProxy 的配置文件 由两大部分组成:global(全局配置段)和 proxies(代理配置段)。
Global 配置
- 进程及安全配置相关的参数
- 性能调整相关参数
- Debug 参数
Proxies 配置
- defaults:为 frontend, backend, listen 提供默认配置
- frontend:前端,相当于 nginx 中的 server {}
- backend:后端,相当于 nginx 中的 upstream {}
- listen:同时拥有前端和后端配置,配置简单,生产推荐使用
配置示例
重启 HAProxy 服务:
测试访问
使用 curl 命令测试 HAProxy 负载均衡效果:
负载均衡算法
HAProxy 支持多种负载均衡算法,包括静态和动态算法:
- 静态算法:static-rr(基于权重的轮询调度)、first(很少用)
- 动态算法:roundrobin(使用最多)、leastconn、random
- 其他算法:source、map-base 取模法、一致性hash、uri、url_param、hdr
高级功能及配置
- HAProxy 的状态页面监控
- 基于 cookie 的会话保持
- IP 透传:七层 IP 透传和四层透传
- ACL 访问控制列表:利用 ACL 做动静分离访问控制
基于后缀名实现动静分离
可以通过配置 ACL 规则来实现基于后缀名的动静分离:
基于访问路径实现动静分离
基于 HTTP 重定向错误页面
通过这些配置,HAProxy 可以更加灵活地处理不同的业务需求,实现高效的负载均衡和流量管理。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/22217.html