关于 haproxy keepalived的测试

Posted jackchen007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 haproxy keepalived的测试相关的知识,希望对你有一定的参考价值。

可以阅读的一篇文章(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的配置文件匹配就行)
修改 默认的监听端口 807777
如: 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又回来了
测试完毕

 

以上是关于关于 haproxy keepalived的测试的主要内容,如果未能解决你的问题,请参考以下文章

HaProxy+Keepalived+Mycat高可用群集配置

HaProxy+Keepalived+Mycat高可用群集配置

RedHat 7配置keepalived实现HAproxy群集

HAproxy+Keepalived(双主)

搭建MySQL高可用负载均衡集群

KeepAlived:vrrp实例故障转移(keepalived+haproxy)