环境
操作系统:CentOS 6.X 64位
Web服务器:192.168.21.127、192.168.21.128
站点:bbs.osyunwei.com和sns.osyunwei.com部署在两台Web服务器上
实现目的
增加两台服务器(主主模式),通过HAProxy+Keepalived实现Web服务器负载均衡
架构规划
HAProxy服务器:192.168.21.129、192.168.21.130
虚拟服务器(VIP):192.168.21.253、192.168.21.254
验证说明
- VIP:192.168.21.253指向192.168.21.129;VIP:192.168.21.254指向192.168.21.130;
- 当192.168.21.129宕机时,VIP:192.168.21.253漂移到192.168.21.130上;
- 当192.168.21.130宕机时,VIP:192.168.21.254漂移到192.168.21.129上;
这样的主主模式好处是,两台服务器在提供服务的同时,又互为对方的备份服务器。
操作步骤
两台HAProxy服务器上分别操作
关闭SElinux
1 | vim /etc/selinux/config |
配置防火墙
1 | vim /etc/sysconfig/iptables #编辑 |
安装HAProxy
创建HAProxy运行账户和组
1 | groupadd haproxy #添加haproxy组 |
安装编译工具
1 | yum install gcc gcc-c++ make openssl-devel kernel-devel |
安装HAProxy
1 | HAProxy下载地址:http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.24.tar.gz |
设置HAProxy
1 | mkdir -p /usr/local/haproxy/conf #创建配置文件目录 |
配置haproxy.cfg参数
1 | cp /usr/local/haproxy/conf/haproxy.cfg /usr/local/haproxy/conf/haproxy.cfg-bak #备份 |
设置HAProxy日志
1 | vim /etc/syslog.conf #编辑,在最下边增加 |
安装keepalived
1 | 下载keeplived:http://www.keepalived.org/software/keepalived-1.2.12.tar.gz |
配置keepalived
1 | cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf-bak |
1 | ########################################### |
设置HAproxy服务监控脚本
1 | vim /etc/keepalived/check_haproxy.sh #编辑,添加以下代码 |
设置更新虚拟服务器(VIP)地址的arp记录到网关脚本
1 | vim /etc/keepalived/clean_arp.sh #编辑,添加以下代码 |
系统内核优化
在两台HAProxy服务器上分别操作
1 | sed -i "s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g" '/etc/sysctl.conf' |
测试验证
测试HAProxy+Keepalived是否正常运行
打开HAProxy监控页面
http://bbs.osyunwei.com/haproxy-status
输入用户名/密码: admin/123456
登录之后如下图所示
解析
bbs.osyunwei.com 解析到192.168.21.253;
sns.osyunwei.com 解析到192.168.21.254;
在两台HAProxy服务器:192.168.21.129、192.168.21.130上执行命令:ip addr
如下图所示:
可以看出现在VIP:192.168.21.253指向192.168.21.129;VIP:192.168.21.254指向192.168.21.130;
在浏览器中打开
如下图所示:
此时,bbs和sns域名都被均衡到192.168.21.127上面
停止192.168.21.127上面的nginx服务
1 | service nginx stop |
继续打开上面的两个网址,如下图所示:
此时,bbs和sns域名都被均衡到192.168.21.128上面(由于192.168.21.127服务器nginx服务被关闭,实现了故障转移)
关闭192.168.21.129上面的keepalived服务
1 | service keepalived stop |
此时,在两台HAProxy服务器:192.168.21.129、192.168.21.130上执行命令:ip addr
如下图所示:
可以看出VIP:192.168.21.253和192.168.21.254均指向到192.168.21.130;
此时,打开http://bbs.osyunwei.com/如下图所示:
可以正常访问
恢复192.168.21.129上面的keepalived服务,恢复192.168.21.127上面的nginx服务
停止192.168.21.130上面的Keepalived服务
1 | service keepalived stop |
在两台HAProxy服务器:192.168.21.129、192.168.21.130上执行命令:ip addr
如下图所示:
可以看出VIP:192.168.21.253和192.168.21.254均指向到192.168.21.129;
此时,打开http://sns.osyunwei.com/如下图所示:
可以正常访问
备注:
查看HAProxy日志文件:
1 | tail -f /var/log/haproxy.log |
至此,HAProxy+Keepalived实现Web服务器负载均衡配置完成。