centos7中使用keepalived做双机热备+负载均衡

来源:互联网 发布:nginx 不允许加参数 编辑:程序博客网 时间:2024/06/05 23:54

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/bashVIP=192.168.56.100source /etc/rc.d/init.d/functionscase "$1" instart)       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 1esacexit 0

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

原创粉丝点击