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
                    
                
                
            
        
浙公网安备 33010602011771号