centos7以tomcat为例用keepalived的LVS做负载均衡

keepalived可以用来做双机热备,此外它还有一个LVS模块可以用来做负载均衡,不过功能没有nginx强大,主要是看用途自己结合了。我用两台keepalived主备机,和三台tomcat服务机做测试。
安装keepalived无特殊要求的话,直接用简单的yum安装即可:yum -y install keepalived 安装好后 vi /etc/keepalived/keepalived.conf 来配置keepalived的主机(格式要对,有些空格不能少):

global_defs {
   router_id one
}
vrrp_instance VI_1 {
    state MASTER
    interface enp0s8
    virtual_router_id 60
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

    virtual_ipaddress {
        192.168.56.100
    }
}

virtual_server 192.168.56.100 8080 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP

    real_server 192.168.56.34 8080 {
       weight 1
       TCP_CHECK {
       connect_timeout 10
       nb_get_retry 3
       delay_before_retry 3
       connect_port 8080
       }
    }

     real_server 192.168.56.35 8080 {
       weight 1
       TCP_CHECK {
       connect_timeout 10
       nb_get_retry 3
       delay_before_retry 3
       connect_port 8080
       }
  }

     real_server 192.168.56.36 8080 {
       weight 1
       TCP_CHECK {
       connect_timeout 10
       nb_get_retry 3
       delay_before_retry 3
       connect_port 8080
       }
     }
}

然后同样的路径去配置备机:

global_defs {
   router_id two
}
vrrp_instance VI_1 {
    state BACKUP
    interface enp0s8
    virtual_router_id 60
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

    virtual_ipaddress {
        192.168.56.100
    }
}

virtual_server 192.168.56.100 8080 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 50
    protocol TCP

    real_server 192.168.56.34 8080 {
       weight 1
       TCP_CHECK {
       connect_timeout 10
       nb_get_retry 3
       delay_before_retry 3
       connect_port 8080
       }

    }

     real_server 192.168.56.35 8080 {
       weight 1
       TCP_CHECK {
       connect_timeout 10
       nb_get_retry 3
       delay_before_retry 3
       connect_port 8080
          }
     }

     real_server 192.168.56.36 8080 {
       weight 1
       TCP_CHECK {
       connect_timeout 10
       nb_get_retry 3
       delay_before_retry 3
       connect_port 8080
       }
     }
}

然后再去三台tomcat服务器将tomcat部署好,如果想要在接受到虚拟ip的请求后返回数据,还需要配置一个脚本:

[root@four ~]# vi realserver.sh 

#add for chkconfig
#chkconfig: 2345 70 30
#description: RealServer's script
#processname: realserver.sh
#!/bin/bash
VIP=192.168.56.100
source /etc/rc.d/init.d/functions
case "$1" in
start)
       ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
       /sbin/route add -host $VIP dev lo:0
       echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
       echo "RealServer Start OK"
       ;;
stop)
       ifconfig lo:0 down
       route del $VIP >/dev/null 2>&1
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
       echo "RealServer Stoped"
       ;;
       *)
       echo "Usage: $0 {start|stop}"
       exit 1
esac
exit 0

然后赋予权限启动它就可以了!可以在keepalived中使用ipvsadm看到!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值