可以阅读的一篇文章(http://blog.csdn.net/xyang81/article/details/52554398)
以下测试的配置都是基本的,简单化的,达到了效果滴,没有参考上面文档
准备俩虚拟机,比如ip是(保证两个虚拟机在同一网段,方便vip来回飘)
master : 11.11.11.11
backup : 11.11.11.12
VIP : 11.11.11.111
首先需要安装基本的系统依赖包
yum -y install openssl-devel
ipset popt-devel
ipvsadm
libnl*
(其他的如果报错,再决定安装)
yum -y install haproxy httpd (方便测试,用yum安装,httpd主要是web服务器,协助测试)
上配置-----------------------------------------------------------------------------------------------------------
## haproxy master backup(主从配置文件修改内容一样) ## haproxy配置文件:/etc/haproxy/haproxy.cfg ## 文件最后增加 listen www.test.com bind 0.0.0.0:80 mode http balance roundrobin server web1 11.11.11.11:7777 cookie app1inst1 weight 5check inter 2000 rise 2 fall 5 server web2 11.11.11.12:7777 cookie app1inst1 weight 5check inter 2000 rise 2 fall 5
## keepalived master ## 配置文件: /etc/keepalived/keepalived.conf ## 将以下内容覆盖(记得备份原始配置文件) vrrp_script check_haproxy { script "/etc/keepalived/check_haproxy.sh" interval 2 weight 2 } global_defs { router_id logstash ### 主从一致 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 151 priority 100 ## 权重 主的比从的值大大大 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 11.11.11.111/24 dev eth0 label eth0:1 ## eth0 为本机网卡名字,具体看自己的网卡进行修改 } track_script { check_haproxy } }
## keepalived backup 配置 ## 配置文件:/etc/keepalived/keepalived.conf ## 将以下内容覆盖(记得备份原始配置文件) vrrp_script check_haproxy { script "/etc/keepalived/check_haproxy.sh" interval 2 weight 2 } global_defs { router_id logstash ### 主从一致 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 151 priority 50 # ## 权重 从的比主的值小小小 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 11.11.11.111/24 dev eth0 label eth0:1 ## eth0 为本机网卡名字,具体看自己的网卡进行修改 } track_script { check_haproxy } }
## /etc/keepalived/check_haproxy.sh ## keepalived 检测脚本 #!/bin/bash A=`ps -C haproxy --no-header | wc -l` if [ $A -eq 0 ];then haproxy -f /etc/haproxy/haproxy.cfg echo "haproxy start" sleep 3 if [ `ps -C haproxy --no-header | wc -l` -eq 0 ];then service keepalived stop echo "keepalived stop" fi fi ## 给脚本赋予执行权限 ## chmod +x /etc/keepalived/check_haproxy.sh
关于httpd的index.html文件, 主从修改一样(也可以不一样,跟ha的配置文件匹配就行) 修改 默认的监听端口 80 为 7777 如: Listen 7777 主从分别创建 /var/www/html/index.html 主文件内容: 1111 从文件内容: 2222
准备启动: 主从顺序,可以随意,最后 vip都会落到 主上的 启动keepalived service keepalived start 启动haproxy haproxy -f /etc/haproxy/haproxy.cfg 启动httpd service httpd start 重启命令可以: service keepalived restart service httpd restart killall haproxy && haproxy -f /etc/haproxy/haproxy.cfg
测试VIP是否正常的飘
测试前先看下主上的vip 网卡信息 ifconfig 能发现有个 eth0:1 的内容 然后停止 keepalived service keepalived stop 在查看 ifconfig 接着上从上看 ifconfig 可以看到VIP相关信息 最后启动主keepalive service keepalived start 再次查看 ifconfig vip又回来了 测试完毕