背景介绍
项目上用的通用服务器为阿里云ECS服务器,部分为实体机,负载开始申请了阿里云的SLB;后来发现阿里云的SLB只能对同域的ECS服务器进行负载,无法对实体机进行负载,因为在配置界面找不到实体机的信息。
开始想着用haproxy+keepalive实现负载均衡和高可用,但是keepalive配置后发现两台服务器上都有vip,关闭防火墙也是一样,tcpdump vrrp正常;并且还没有申请vip,所以就想能不能用haproxy+slb实现呢?进行尝试及和阿里云支持人员确认是可以的。
实现过程
实体机三台:stj1,stj2,stj3;
haproxy两台用ecs服务器:ha1,ha2;
SLB一台:slb1;
haproxy的配置文件haproxy.cnf配置就正常配置;
SLB在管理端配置,选择ha1和ha2,配置对应的负载端口;
验证
和ha+keepalive的验证是一样的,通过访问负载ip和端口对应的服务,分析haproxy的日志可以看出是ha1还是ha2在做master,通过stj的日志可以分析出是访问的哪台实体机;