LVS+keepalived

一、在LVS服务器上操作

net.ipv4.ip_forward = 1   #开启路由转发

yum  -y  install  ipvsadm  keepalived 

keepalived配置文件如下:

global_defs {
  notification_email {
    cuibobo@mansoncui.com
}
  notification_email_from root@lvs-master.localdomain
  smtp_server 127.0.0.1
  smtp_connection_timeout 30
  router_id LVS_DEVEL # 设置lvs的id,在一个网络内应该是唯一的
}
vrrp_instance VI_1 {
  state MASTER #指定Keepalived的角色,MASTER为主,BACKUP为备
  interface eth0 #指定Keepalived的角色,MASTER为主,BACKUP为备
  virtual_router_id 51 #虚拟路由编号,主备要一致
  priority 100 #定义优先级,数字越大,优先级越高,主DR必须大于备用DR
  advert_int 1 #VRRP报文发送间隔,默认为1s
  authentication {
    auth_type PASS
    auth_pass 1111
  }
  virtual_ipaddress {
    192.168.10.199 #定义虚拟IP(VIP)192.168.10.199,可多设,每行一个
  }
}


# 定义对外提供服务的LVS的VIP以及port
virtual_server 192.168.10.199 80 {
  delay_loop 5 # 设置健康检查时间,单位是秒
  lb_algo wrr # 设置负载调度的算法为wlc
  lb_kind DR # 设置LVS实现负载的机制,有NAT、TUN、DR三个模式
  nat_mask 255.255.255.0
  persistence_timeout 300
  protocol TCP

  real_server 192.168.10.146 80 { # 指定real server1的IP地址
  weight 5 # 配置节点权值,数字越大权重越高
  #根据检测80是否可用
  # TCP_CHECK {
  # connect_timeout 10
  # nb_get_retry 3
  # delay_before_retry 3
  # connect_port 80
  # }
#根据web服务访问文件
  HTTP_GET {
  url {
    path /monitor/cs.html
    nb_get_retry 3
    delay_before_retry 3
  }
  }
}

  real_server 192.168.10.147 80 { # 指定real server2的IP地址
  weight 1 # 配置节点权值,数字越大权重越高
  HTTP_GET {
  url {
    path /monitor/cs.html
    nb_get_retry 3
    delay_before_retry 3
   }
    }
  # TCP_CHECK {
  # connect_timeout 10
  # nb_get_retry 3
  # delay_before_retry 3
  # connect_port 80
  # }
  }
}

3、ipvsadm --save > /etc/sysconfig/ipvsadm   #创建文件,不然不能启动

4、启动keepalived 和ipvsadm

  systemctl start keepalived  &&  systemctl  enable  keepalived

  systemctl start ipvsadm  &&  systemctl  enable keepalived

5、添加VIP和应用服务器

用的模式是dr,后台的web server用的nginx.这时候一条请求过来,在程序没有问题的情况下,一条连接最多也就五秒就断开了.这时候你可以这样设置:ipvsadm --set 5 10 300.设置tcp连接只保持5秒中

ipvsadm -A -t 192.168.10.199:80 -s wrr

ipvsadm -a -t 192.168.10.199:80 -r 192.168.10.147:80 -w 1

ipvsadm -a -t 192.168.10.199:80 -r 192.168.10.146:80 -w 1

二、应用服务器部署web服务和绑定VIP

1、绑定虚拟VIP脚本:

#!/bin/bash
#description: Config realserver

VIP=192.168.10.199

rpm -q net-tools
if [ $? -eq 1 ];then
yum -y install net-tools
fi


chmod +x /etc/rc.d/init.d/functions
/etc/rc.d/init.d/functions

case "$1" in
start)
    /sbin/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
    sysctl -p >/dev/null 2>&1
    echo "RealServer Start OK"
    ;;
stop)
    /sbin/ifconfig lo:0 down
    /sbin/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

2、安装nginx,yum -y  install nginx

三、在浏览器访问

http://$VIP/test.html

大家一起来学习
原文地址:https://www.cnblogs.com/cuibobo/p/8479212.html