• 文化山西:风华长城岁月歌 2019-10-15
  • 王晨:抓好大气污染防治 实现人民群众蓝天白云美好期盼 2019-10-09
  • 马伊琍庆幸文章逼自己走出舒适区:他说话难听但特别对 2019-10-09
  • 上合组织发展进程中一座新的里程碑 2019-10-08
  • 男子冒充澳商交往多人行骗被抓 现场来6个女友 2019-10-05
  • 谁还不是个小仙女了!甜而不腻的穿搭太撩人,直击你的粉色少女心! 2019-10-04
  • “陪堂妈妈”上课3000多节 班主任:她去中考没问题 2019-10-04
  • 【北京达世行世纪车型报价】北京达世行世纪4S店车型价格 2019-10-03
  • 但愿越南不是“颜色革命”!社会实践的事实一再证明,“社会主义”离开马列主义原则的改革开放,将是死路一条! 2019-10-03
  • 月薪过万白领辞职回乡养鸡 亏数十万后回城找工作 2019-09-25
  • (两会受权发布)中华人民共和国全国人民代表大会公告(第六号) 2019-09-16
  • 赵久占、郭健斌任天津市北辰区人民政府副区长 2019-09-16
  • 杨箕寺右 百余龙舟齐汇江面 2019-09-13
  • 特朗普敬礼被批相关新闻 2019-09-13
  • 回复@“老笑头”,你的牛二逻辑确实很通透!论坛奇葩!哈哈哈哈! 2019-09-09
  • Jquery中文网 码报 www.okkrb.tw
    Jquery中文网 >  服务器技术  >  集群与高可用  >  正文 haproxy+keepalived配置高可用负载均衡

    2018第105期码报资料:haproxy+keepalived配置高可用负载均衡

    发布时间:2014-08-15   编辑:码报 www.okkrb.tw
    haproxy keepalived 高可用负载均衡

    码报 www.okkrb.tw haproxy+keepalived配置高可用负载均衡,供大家学习参考。

    环境四台机器都是RedHat4.8(64位)版本:
    IP地址             用处
    192.168.5.55       MASTER
    192.168.2.73       BACKUP
    192.168.5.54       负载A
    192.168.5.57       负载B
    192.168.2.100      VIP

    1、MASTER上安装haproxy
    wget //haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz /root
    解压到当前目录
    tar zxvf haproxy-1.3.20.tar.gz
    进到此目录
    cd haproxy-1.3.20
    编译及安装,安装到/usr/local目录,但是安装完此目录下没有haproxy文件夹,我也很奇怪!
    make TARGET=linux26 prefix=/usr/local/haproxy install
    但是出来的结果会提示如下信息
     

    复制代码 代码如下:
    install -d /usr/local/sbin
    install haproxy /usr/local/sbin
    install -d /usr/local/share/man/man1
    install -m 644 doc/haproxy.1 /usr/local/share/man/man1
    install -d /usr/local/doc/haproxy
    for x in configuration architecture haproxy-en haproxy-fr; do \
            install -m 644 doc/$x.txt /usr/local/doc/haproxy ; \
    done
     

    提示你启动haproxy在sbin目录,其余的在doc目录
    进入到haproxy目录
    cd /usr/local/doc/haproxy
    新建一个haproxy主配置文件
    vi haproxy.cfg
     

    复制代码 代码如下:
    global
       log 127.0.0.1 local0
       maxconn 4096
       chroot /usr/local/doc/haproxy
       uid 501
       gid 501
       daemon
       nbproc 1
       pidfile /usr/local/doc/haproxy/haproxy.pid
    defaults
       log    127.0.0.1  local3
       mode   http
       option httplog
       option httpclose
       option dontlognull
       option forwardfor
       option redispatch
       retries 2
       maxconn 2000
       balance roundrobin
       stats   uri    /haproxy-status    查看状态
       stats hide-version       隐藏haproxy版本
       stats realm Gemini\ Haproxy      查看状态需要口令
       stats auth admin:admin           用户名和密码
       contimeout  5000
       clitimeout  50000
       srvtimeout  50000
    listen web_proxy 192.168.2.100:80
       server web1 192.168.5.54:8080 cookie app1inst1 check inter 2000 rise 2 fall 5
       server web2 192.168.5.57:8080 cookie app1inst2 check inter 2000 rise 2 fall 5

    2、MASTER安装keepalived
    tar zxvf keepalived-1.1.15.tar.gz
    vi /usr/src/kernels/2.6.9-89.EL-smp-x86_64/include/linux/types.h
    将如下两行注释掉,否则编译会出错,跟我这个版本的系统有关系,你的也许不要!
     

    复制代码 代码如下:
    /*
    typedef __u16 __bitwise __sum16;
    typedef __u32 __bitwise __wsum;
    */
    cd keepalived-1.1.15
    ./configure
    make
    make install
     

    将keepalived作为系统服务启动
     

    复制代码 代码如下:
    cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
    cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
    mkdir /etc/keepalived/
    cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
    cp /usr/local/sbin/keepalived /usr/sbin/
     

    vi /etc/keepalived/keepalived.conf内容如下:
     

    复制代码 代码如下:
    ! Configuration File for keepalived
    global_defs {
       router_id LVA_DEVEL
    }
    vrrp_script chk_http_port {
       script "/root/check_haproxy.sh"
       interval 2
       weight  2
    }
    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
    track_script {
        chk_http_port
    }
        virtual_ipaddress {
            192.168.2.100
        }
    }
     

    上面调用了一个脚本check_haproxy.sh,内容如下:
     

    复制代码 代码如下:
    #!/bin/bash
    A=`ps -C haproxy --no-header | wc -l`
    if [ $A -eq 0 ];then
    /usr/local/sbin/haproxy -f /usr/local/doc/haproxy/haproxy.cfg
    echo "haproxy start"
    sleep 3
    if [ `ps -C haproxy --no-header | wc -l` -eq 0 ];then
    /etc/init.d/keepalived stop
    echo "keepalived stop"
    fi
    fi

    3、BACKUP上安装haproxy,步骤就不详细介绍,和MASTER上面一样的。
    haproxy.conf内容如下
     

    复制代码 代码如下:
    global
       log 127.0.0.1 local0
       maxconn 4096
       chroot /usr/local/doc/haproxy
       uid 501
       gid 501
       daemon
       nbproc 1
       pidfile /usr/local/doc/haproxy/haproxy.pid
    defaults
       log    127.0.0.1  local3
       mode   http
       option httplog
       option httpclose
       option dontlognull
       option forwardfor
       option redispatch
       retries 2
       maxconn 2000
       balance roundrobin
       stats   uri    /haproxy-status
       stats hide-version
       stats realm Gemini\ Haproxy
       stats auth admin:admin
       contimeout  5000
       clitimeout  50000
       srvtimeout  50000
    listen web_proxy 192.168.2.100:80
       server web1 192.168.5.54:8080 cookie app1inst1 check inter 2000 rise 2 fall 5
       server web2 192.168.5.57:8080 cookie app1inst2 check inter 2000 rise 2 fall 5

    4、BACKUP上安装keepalived,步骤也不多介绍,keepalived.conf文件内容就两处有变化,红色字体标出
     

    复制代码 代码如下:
    ! Configuration File for keepalived
    global_defs {
       router_id LVA_DEVEL
    }
    vrrp_script chk_http_port {
       script "/root/check_haproxy.sh"
       interval 2
       weight  2
    }
    vrrp_instance VI_1 {
        state BACKUP
        interface eth0
        virtual_router_id 51
        priority 99
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
    track_script {
        chk_http_port
    }
        virtual_ipaddress {
            192.168.2.100
        }
    }
     

    调用脚本check_haproxy.sh内容:
     

    复制代码 代码如下:
    #!/bin/bash
    A=`ip a | grep 192.168.2.100 | wc -l`
    B=`ps -ef | grep haproxy | grep -v grep | awk '{print $2}'`
    if [ $A -gt 0 ];then
    /usr/local/sbin/haproxy -f /usr/local/doc/haproxy/haproxy.cfg
    else
    kill -9 $B
    fi

    5、两台负载机器我就不多介绍了,用的是系统自带的apache

    登录192.168.5.54上操作:
    echo 'this is 192.168.5.54!' > /var/www/html/index.html
    修改/etc/httpd/conf/httpd.conf文件的监听端口为8080
    sed -i 's/Listen 80/Listen 8080/g' /etc/httpd/conf/httpd.conf
    /etc/init.d/httpd start

    登录192.168.5.57上操作:
    echo 'Hello,This is 192.168.5.57!' > /var/www/html/index.html
    修改/etc/httpd/conf/httpd.conf文件的监听端口为8080
    sed -i 's/Listen 80/Listen 8080/g' /etc/httpd/conf/httpd.conf
    /etc/init.d/httpd start

    6、测试步骤
    启动MASTER上的keepalived服务,再启动BACKUP上的keepalived服务。
    确定MASTER上是否有192.168.2.100地址,用ip a查看即可!
    然后手动杀掉MASTER上的haproxy进程,看看是否能马上恢复进程?
    停止MASTER上的keepalived服务,确认BACKUP是否接管VIP地址?
    最后再启动MASTER上的keepalived服务,再确认MASTER是否再接管VIP地址?

    总结:我这测试都没问题,如果有问题请给我留言!
    有问题的朋友也可以加jquery中文网的QQ群:161228069 进行交流。

    您可能感兴趣的文章:
    haproxy+keepalived负载均衡之主备切换(centos)
    haproxy+keepalived配置高可用负载均衡
    LVS调度算法和三种工作模式
    MySQL主从服务器配置的一些总结
    nginx配置反向代理的简单示例
    MySQL双机高可用的负载均衡(读写分离、主从自动切换)架构设计
    nginx反向代理/负载均衡配置
    Nginx负载均衡和LVS负载均衡的比较分析
    Nginx的配置Upstream负载均衡???/a>
    mysql主从复制与负载均衡问题解答

    上一篇:ipvsadm 命令参考
    [关闭]
  • 文化山西:风华长城岁月歌 2019-10-15
  • 王晨:抓好大气污染防治 实现人民群众蓝天白云美好期盼 2019-10-09
  • 马伊琍庆幸文章逼自己走出舒适区:他说话难听但特别对 2019-10-09
  • 上合组织发展进程中一座新的里程碑 2019-10-08
  • 男子冒充澳商交往多人行骗被抓 现场来6个女友 2019-10-05
  • 谁还不是个小仙女了!甜而不腻的穿搭太撩人,直击你的粉色少女心! 2019-10-04
  • “陪堂妈妈”上课3000多节 班主任:她去中考没问题 2019-10-04
  • 【北京达世行世纪车型报价】北京达世行世纪4S店车型价格 2019-10-03
  • 但愿越南不是“颜色革命”!社会实践的事实一再证明,“社会主义”离开马列主义原则的改革开放,将是死路一条! 2019-10-03
  • 月薪过万白领辞职回乡养鸡 亏数十万后回城找工作 2019-09-25
  • (两会受权发布)中华人民共和国全国人民代表大会公告(第六号) 2019-09-16
  • 赵久占、郭健斌任天津市北辰区人民政府副区长 2019-09-16
  • 杨箕寺右 百余龙舟齐汇江面 2019-09-13
  • 特朗普敬礼被批相关新闻 2019-09-13
  • 回复@“老笑头”,你的牛二逻辑确实很通透!论坛奇葩!哈哈哈哈! 2019-09-09
  • 平特三肖 时时彩qq老群 北单网 贵州麻将规则 pk10走势图看法教程 骰子比大小网站 球探足球比分直播数据 北京pk赛车网址 澳客app苹果官网下载 新时时彩宝典下载