• 风雨兼程,与党和人民同行 2019-05-23
  • 张鼎丞对人民军队建设作出的贡献 2019-05-23
  • 把党的领导贯穿军事科研工作各方面和全过程 2019-05-23
  • 在强国论坛和新浪微博上也就说了几句国产80后伟大的钢琴家,嚯!粉丝不干了,邮箱里塞满男性女性生殖器的骂声和愤慨声。其实,真没有诋毁的意思。比如,美国一家男性内衣 2019-05-22
  • 【理上网来·喜迎十九大】不忘初心、继续前进,勇于全面深化改革 2019-05-22
  • 这5件事预测你能否可以开心活过80岁 2019-05-22
  • 新疆14所高校大学生同台比赛 2019-05-21
  • 西南铁路端午假期发送400余万人次 两人不文明乘车或受失信惩戒 2019-05-21
  • 省委中心组成员到联系帮扶点开展专题调研 2019-05-21
  • 热刺中场埃里克森领衔 北欧童话能否续写逆袭新篇 2019-05-21
  • 在深入推动长江经济带发展座谈会上的讲话 2019-05-20
  • 北京副中心核心区建成世界超一流智能配电网 2019-05-20
  • 江苏:五峰山跨江线路升高改造工程启动(组图) 2019-05-20
  • 无视婚变传闻 王浩信晒与朋友新旧对比照秀友情 2019-05-19
  • 专访香港演员陈钰芸:女版李小龙 用武术演绎精彩人生 2019-05-19
  • Jquery中文网 码报 www.okkrb.tw
    Jquery中文网 >  服务器技术  >  集群与高可用  >  正文 haproxy+keepalived配置高可用负载均衡

    湖南辣妹子码报: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-05-23
  • 张鼎丞对人民军队建设作出的贡献 2019-05-23
  • 把党的领导贯穿军事科研工作各方面和全过程 2019-05-23
  • 在强国论坛和新浪微博上也就说了几句国产80后伟大的钢琴家,嚯!粉丝不干了,邮箱里塞满男性女性生殖器的骂声和愤慨声。其实,真没有诋毁的意思。比如,美国一家男性内衣 2019-05-22
  • 【理上网来·喜迎十九大】不忘初心、继续前进,勇于全面深化改革 2019-05-22
  • 这5件事预测你能否可以开心活过80岁 2019-05-22
  • 新疆14所高校大学生同台比赛 2019-05-21
  • 西南铁路端午假期发送400余万人次 两人不文明乘车或受失信惩戒 2019-05-21
  • 省委中心组成员到联系帮扶点开展专题调研 2019-05-21
  • 热刺中场埃里克森领衔 北欧童话能否续写逆袭新篇 2019-05-21
  • 在深入推动长江经济带发展座谈会上的讲话 2019-05-20
  • 北京副中心核心区建成世界超一流智能配电网 2019-05-20
  • 江苏:五峰山跨江线路升高改造工程启动(组图) 2019-05-20
  • 无视婚变传闻 王浩信晒与朋友新旧对比照秀友情 2019-05-19
  • 专访香港演员陈钰芸:女版李小龙 用武术演绎精彩人生 2019-05-19