HAproxy结合Keeplived在centos7上实现高可用

*** 本文都是自己研究出来的,如有不正确的地方,请指导

1.通过apt-get 或者 yum安装 HAproxy 以及 Keeplived

yum install keepalived haproxy

 2. 配置文件

 cat /etc/haproxy/haproxy.cfg

global
        log /dev/log    local0
        log /dev/log    local1 notice
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin
        stats timeout 30s
        user haproxy
        group haproxy
        daemon
defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
listen  esnode 0.0.0.0:9211
      mode tcp
      option tcplog
        option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www
      balance    roundrobin
        server   esnode1 172.16.18.111:9200 check inter 5s rise 2 fall 3
        server   esnode2 172.16.18.112:9200 check inter 5s rise 2 fall 3
        server   esnode3 172.16.18.113:9200 check inter 5s rise 2 fall 3

3.配置keepalived

cat /etc/keepalived/keepalived.conf

! Configuration File for keepalived


vrrp_script chk_http_port {
        script "/etc/keepalived/check_haproxy.sh"
        interval 2
        weight 2


        global_defs {
                router_id LVS_DEVEL
        }
        vrrp_instance VI_1 {
                state MASTER
                interface eth0
                virtual_router_id 51
                priority 190
                advert_int 1
                authentication {
                        auth_type PASS
                        auth_pass 1111
                }


                track_script {
                        chk_http_port
                }


                virtual_ipaddress {
                        172.16.18.110
                }
        }
}

cat /etc/keepalived/check_haproxy.sh

#!/bin/bash
A=`ps -C haproxy --no-header |wc -l`
if [ $A -eq 0 ];then
        /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg
        sleep 3


        if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then
                /etc/init.d/keepalived stop
        fi
fi


你可能感兴趣的:(haproxy,keeplived)