Haproxy+Keepalived

网络拓扑图
Haproxy+Keepalived_第1张图片

解压软件包
tar -xzvf haproxy-1.4.11.tar.gz
 

 查看系统信息

uname -a

 cd haproxy-1.4.11

make TARGET=linux26 ARCH=x86_64

make install
 

mkdir /etc/haproxy

cp examples/haproxy.cfg /etc/haproxy/

cp examples/haproxy.init /etc/init.d/haproxy

chmod +x /etc/init.d/haproxy

ln -s /usr/local/sbin/haproxy /usr/sbin/

 以上就安装步凑

下面修改配置文件 

vim haproxy.cf

# this config needs haproxy-1.1.28 or haproxy-1.2.1

 

global

        log 127.0.0.1   local0

        log 127.0.0.1   local1 notice

        #log loghost    local0 info

        maxconn 4096

        chroot /usr/share/haproxy

        uid 500注意这里表示运行的用户id和组id

        gid 500

        daemon

        #debug

        #quiet

 以上是全局配置

defaults

        log     global

        mode    http

        option  httplog

        option  dontlognull

        option  redispatch

        option  abortonclose

        retries 2

        option redispatch

        maxconn 2000

        contimeout      5000

        clitimeout      50000

        srvtimeout      50000

        timeout check 5s

        stats refresh 30s

        stats uri /stats状态查看的根目录

        stats realm yys-test-Haproxy

        stats auth admin:admin这里就是haproxy状态网页用户名和密码

listen  appli1-rewrite 0.0.0.0:80

        cookie  SERVERID rewrite

        balance roundrobin采用轮询方式

        server  app1_1 192.168.1.200:80 cookie app1inst1 check inter 2000 rise 2 fall 5 设置后端

        server  app1_2 192.168.1.201:80 cookie app1inst2 check inter 2000 rise 2 fall 5设置后端


下面配置keepalived 

vim keepalived.conf

vrrp_script chk_http_port {

        script "/opt/check_haproxy.sh"

        interval 2

        weight 2

}

vrrp_instance VI_1 {

        state MASTER            # master

        interface eth0

        virtual_router_id 50    # unique, but master and backup is same

        priority 150

        advert_int 1

        authentication {

                auth_type PASS

                auth_pass uplooking

        }

track_script {

        chk_http_port

        }

    virtual_ipaddress {

        192.168.1.250  # vip

        }

}

检测脚本,为了防止haproxy服务关闭导致keepalived不自动切换

Vim /opt/check_haproxy.sh

#!/bin/bash

if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then

     /etc/init.d/haproxy  start

fi

sleep 2

if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then

       /etc/init.d/keepalived stop

Fi

Ma1和ma2都是这样配置

现在启动ha1和ha2的web服务

访问网页

Haproxy+Keepalived_第2张图片

 

Haproxy+Keepalived_第3张图片

测试:关闭任意一台keepalived

关闭前

Haproxy+Keepalived_第4张图片

Haproxy+Keepalived_第5张图片

 

关闭ma1的keepalived的

Haproxy+Keepalived_第6张图片

Haproxy+Keepalived_第7张图片

访问网页

Haproxy+Keepalived_第8张图片

Haproxy+Keepalived_第9张图片

不会影响访问 

 

现在关闭任意一台web服务

Haproxy+Keepalived_第10张图片

 

Haproxy+Keepalived_第11张图片

现在就只会访问到ha2的网页

查看haproxy状态页面

访问任意一个haproxy的地址

192.168.1.203/stats

Haproxy+Keepalived_第12张图片

这里就看到haproxy的一些信息

当我恢复ha1的httpd的时候

Haproxy+Keepalived_第13张图片

可以看到恢复的状态和信息


你可能感兴趣的:(Haproxy+Keepalived)