LVS DR +keepalived配置

LVS DR +keepalived配置nginx

咱们先来看看为何要引入 keepalived,前面的 lvs 虽然已经配置成功也实现了负载均算法

衡,可是咱们测试的时候发现,当某台 real server 把 nginx 停掉,那么 director 照样会把请vim

求转发过去,这样就形成了某些请求不正常。因此须要有一种机制用来检测 real server 的状服务器

态,这就是 keepalived。它的做用除了能够检测 RS 状态外, 还能够检测备用 director 的状态,curl

也就是说 keepalived 能够实现 ha 集群的功能,固然了也须要一台备用 director 服务器。备用oop

director 也须要安装一下 keepalived 软件。两台 director 上都执行以下命令:测试

 

# yum install -y keepalivedurl

主 director 上安装好后,编辑配置文件router

# vim /etc/keepalived/keepalived.conf  //加入以下:server

#全局部分配置主从#

vrrp_instance VI_1 {

    state MASTER   

#备用服务器上为 BACKUP

    interface eth0

    virtual_router_id 51

    priority 100  

#权重优先级备用服务器上为90,或比主上小也能够

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

#认证机制

    }

    virtual_ipaddress {

        192.168.0.110

#规定虚拟VIP,也是对外的vip

    }

}

#dir部分包含rs部分#

virtual_server 192.168.0.110 80 {

#规定虚拟VIP,也是对外的vip

    delay_loop 6                  

#(每隔6秒查询realserver状态)

    lb_algo wlc                  

#(lvs 算法能够是wlc lc rr wrr)

    lb_kind DR                  

#(Direct Route可自动识别)

    persistence_timeout 60        

#(同一IP的链接60秒内被分配到同一台realserver,长链接60秒,可改为0,不须要长链接)

    protocol TCP               

#(用TCP协议检查realserver状态)

 

    real_server 192.168.0.43 80 {

#真实real_server

        weight 100               

#(权重)

        TCP_CHECK {

        connect_timeout 10      

#(10秒无响应超时,就自动把这台server取消掉)

        nb_get_retry 3

        delay_before_retry 3

        connect_port 80

        }

    }

real_server 192.168.0.45 80 {

#真实real_server

        weight 100

        TCP_CHECK {

        connect_timeout 10

        nb_get_retry 3

        delay_before_retry 3

        connect_port 80

        }

     }

}

以上为主 director 的配置文件,从 director 的配置文件只须要修改以下内容:

state MASTER -> state BACKUP

priority 100 -> priority 90

配置完 keepalived 后,须要开启端口转发(主从都要作):

# echo 1 > /proc/sys/net/ipv4/ip_forward

而后,两个 rs 上执行/usr/local/sbin/lvs_dr_rs.sh 脚本

另外,须要注意的是,启动keepalived服务会自动生成vip和ipvsadm规则,不须要再去执行上面提到的/usr/local/sbin/lvs_dr.sh 脚本。

测试

把主上的keepalived服务停掉

# service keeplived stop

查看从上的keepalived服务

# ip addr 查看ip地址

把其中的一个real_server1的nginx服务停掉,在打开一个虚拟机,测试

[root@wjh2 ~]# curl 192.168.0.111

rs2rs2

[root@wjh2 ~]# curl 192.168.0.111

rs2rs2

[root@wjh2 ~]# curl 192.168.0.111

rs2rs2

[root@wjh2 ~]# curl 192.168.0.111

rs2rs2

会自动把rs1摘除掉,转到rs2上

相关文章
相关标签/搜索