一、HAProxy 安装步骤
1. 安装 HAProxy(Linux 系统)
Ubuntu/Debian
sudo apt update
sudo apt install -y haproxy
sudo systemctl enable haproxy
CentOS/RHEL
sudo yum install -y haproxy
sudo systemctl enable haproxy
验证安装
haproxy -v
# 应输出类似:HAProxy version 2.4.0
二、MySQL 负载均衡配置
1. 基础配置(/etc/haproxy/haproxy.cfg
)
global
log /dev/log local0
maxconn 4096
user haproxy
group haproxy
daemon
defaults
log global
mode tcp
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
listen mysql-cluster
bind *:3306
mode tcp
balance roundrobin
option mysql-check user haproxy_check
server mysql-master 192.168.1.160:3306 check
server mysql-slave1 192.168.1.20:3306 check
server mysql-slave2 192.168.1.29:3306 check
2. 关键配置解析
配置项 | 说明 |
---|---|
mode tcp |
使用TCP模式代理MySQL |
balance roundrobin |
轮询负载均衡策略 |
option mysql-check |
启用MySQL健康检查 |
server 定义 |
后端MySQL服务器列表 |
三、MySQL 健康检查配置
1. 在MySQL主从服务器上创建监控用户
-- 在主库执行
CREATE USER 'haproxy_check'@'%' IDENTIFIED BY 'Check@123';
FLUSH PRIVILEGES;
2. 增强健康检查配置
listen mysql-cluster
...
option mysql-check user haproxy_check
check inter 2000 rise 2 fall 3
# 每2秒检查一次,成功2次标记为UP,失败3次标记为DOWN
四、读写分离配置(可选)
1. 识别读/写请求
frontend mysql-front
bind *:3306
mode tcp
default_backend mysql-write
backend mysql-write
mode tcp
server mysql-master 192.168.1.160:3306 check
backend mysql-read
mode tcp
balance roundrobin
server mysql-slave1 192.168.1.20:3306 check
server mysql-slave2 192.168.1.29:3306 check
五、启动与验证
1. 启动HAProxy
sudo systemctl restart haproxy
sudo systemctl status haproxy
2. 验证负载均衡
# 查看HAProxy统计页面(需先配置)
curl http://localhost:8404/stats
# 测试MySQL连接
mysql -u appuser -p -h haproxy-server-ip
六、高级配置
1. 启用统计页面
listen stats
bind *:8404
mode http
stats enable
stats uri /stats
stats auth admin:Admin@123
2. 日志配置
# 修改rsyslog配置
echo "local0.* /var/log/haproxy.log" | sudo tee -a /etc/rsyslog.d/haproxy.conf
sudo systemctl restart rsyslog
七、生产环境建议
安全加固
bind *:3306 ssl crt /etc/haproxy/mysql.pem
连接池优化
default_backend mysql-cluster timeout client 1h timeout server 1h
故障转移
server mysql-slave1 192.168.1.20:3306 check backup
八、与Keepalived集成(高可用)
1. 安装Keepalived
sudo apt install -y keepalived # Ubuntu
sudo yum install -y keepalived # CentOS
2. 配置VIP漂移
vrrp_script chk_haproxy {
script "killall -0 haproxy"
interval 2
}
vrrp_instance VI_1 {
virtual_router_id 51
advert_int 1
virtual_ipaddress {
192.168.1.100/24
}
track_script {
chk_haproxy
}
}
总结
✅ 基础负载均衡:轮询分发MySQL请求
✅ 健康检查:自动剔除故障节点
✅ 读写分离:通过前端规则实现(可选)
✅ 高可用:结合Keepalived实现VIP漂移
最终架构:
应用层 → HAProxy (192.168.1.100:3306) → {Master:160, Slave1:20, Slave2:29}
作者:admin 创建时间:2025-06-06 11:15
最后编辑:admin 更新时间:2025-06-07 09:49
最后编辑:admin 更新时间:2025-06-07 09:49