1、LVS安装html
一、[root@localhost ~]# yum install -y ipvsadm前端
二、[root@localhost ~]# vi /etc/sysctl.conflinux
net.ipv4.ip_forward = 1
执行以下命令来应用:
[root@localhost ~]# sysctl -pweb
[root@localhost ~]# sysctl -w net.ipv4.ip_forward=1算法
2、LVS配置(三种模型配置)docker
Lvs有3种模型,分别是NAT(Virtual Server via NAT)、DR(Virtual Server via Direct Routing)、Tun(Virtual Server via IP Tunneling)模型。windows
术语:后端
1. DS:Director Server。指的是前端负载均衡器节点。
2. RS:Real Server。后端真实的工做服务器。
3. VIP:向外部直接面向用户请求,做为用户请求的目标的IP地址。
4. DIP:Director Server IP,主要用于和内部主机通信的IP地址。
5. RIP:Real Server IP,后端服务器的IP地址。
6. CIP:Client IP,访问客户端的IP地址。tomcat
(一)NAT模式(网络地址转换)bash
经过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分发给后端的真实服务器,真实服务器的响应报文经过调度器时,报文的源地址被重写,再返回到客户端,完成整个调度的过程。
优势:支持全部操做系统及私有网络,且只需一个公网 IP 地址
缺点:用户请求和响应报文都必须通过dr地址重写,当用户请求愈来愈多时,调度器的处理能力将成为瓶颈。
IP准备:VIP: 192.168.0.106, RSIP:192.168.22.15三、192.168.22.154
一、配置网络环境
1)NAT模式下须要,负载均衡调度器(Director Server)须要两个网卡,增长网卡(须要添加HWADDR不一样的网卡,两个网卡模式分别要属于不一样的连接模式分别为桥接和NAT)。
2)生成完成后,查看虚拟机linux网卡配置状况,成本网卡名为ens37。
3)缺乏IP地址和网卡配置文件,手动配置一个,先配置桥接模式,配置物理网卡:
4)查看一下无线网卡地址(windows):ipconfig /all
5)生成完成后,配置虚拟机linux网卡静态IP地址
[root@localhost network-scripts]# cp ifcfg-eno16777736 ifcfg-ens37 [root@localhost network-scripts]# vi ifcfg-ens37
TYPE=Ethernet #BOOTPROTO=dhcp BOOTPROTO=static DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=ens37 #UUID=115a7ee2-4721-4358-92e9-b6bd1068e062 DEVICE=ens37 ONBOOT=yes IPADDR=192.168.0.106 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 DNS1=8.8.8.8
6)[root@localhost network-scripts]# systemctl restart network //增长后重启。
[root@localhost network-scripts]# ifconfig
[root@localhost network-scripts]# ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.22.153 netmask 255.255.255.0 broadcast 192.168.22.255 inet6 fe80::20c:29ff:fe7e:c6f5 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:7e:c6:f5 txqueuelen 1000 (Ethernet) RX packets 991 bytes 88247 (86.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 683 bytes 99544 (97.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.106 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::20c:29ff:fe7e:c6ff prefixlen 64 scopeid 0x20<link> ether 00:0c:29:7e:c6:ff txqueuelen 1000 (Ethernet) RX packets 65 bytes 10234 (9.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 15 bytes 1688 (1.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
两个网卡配置成功。
二、服务器配置
为了测试用使用docker生成两个tomcat服务器用于测试,在当前目录建立两个目录
1)[root@localhost ~]# mkdir ~/tomcat ~/tomcat/8081 ~/tomcat/8082
[root@localhost 8081]# docker run --name tomcat1 -p 8081:8080 -v $PWD/data:/usr/local/tomcat/webapps/data -d tomcat:latest [root@localhost 8082]# docker run --name tomcat2 -p 8082:8080 -v $PWD/data:/usr/local/tomcat/webapps/data -d tomcat:latest [root@localhost 8081]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d2b6e4f2ac3d tomcat:latest "catalina.sh run" 4 seconds ago Up 3 seconds 0.0.0.0:8081->8080/tcp tomcat1 8e4e995fd60b tomcat:latest "catalina.sh run" 31 seconds ago Up 30 seconds 0.0.0.0:8082->8080/tcp tomcat2
把15三、154三个网关设置进行调整:
2)[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
3)ipvsadm配置
查看当前系统上网卡名称,把上述桥连方式生成网卡IP地址作为VIP(192.168.0.106)使用
[root@localhost network-scripts]# cd /proc/sys/net/ipv4/conf [root@localhost conf]# ls all default docker0 eno16777736 ens37 lo
建立lvs_nat.sh文件(touch lvs_nat.sh),填写下列内容:
#!/bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects echo 0 > /proc/sys/net/ipv4/conf/eno16777736/send_redirects echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects iptables -t nat -F iptables -t nat -X iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE IPVSADM='/sbin/ipvsadm' $IPVSADM -C $IPVSADM -A -t 192.168.0.106:8080 -s rr $IPVSADM -a -t 192.168.0.106:8080 -r 192.168.22.153:8081 -m -w 1 $IPVSADM -a -t 192.168.0.106:8080 -r 192.168.22.153:8082 -m -w 1 $IPVSADM -a -t 192.168.0.106:8080 -r 192.168.22.154:8080 -m -w 1
参数说明:
-A:增长一个虚拟服务
-a:增长real server
-r:指定real server 的 IP地址
-t:表示TCP服务
-s:指定调度算法 rr:轮询算法
-m –masquerading 指定LVS 的工做模式为NAT 模式
4)[root@localhost ~]# ./lvs_nat.sh //执行lvs_nat.sh文件 ,随系统自动启动,可放入/usr/local/sbin/目录下
5)测试安装配置状况:
[root@localhost ~]# ipvsadm -ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.0.106:8080 rr -> 192.168.22.153:8081 Masq 1 0 0 -> 192.168.22.153:8082 Masq 1 0 0 -> 192.168.22.154:8080 Masq 1 0 0 [root@localhost ~]# ipvsadm -ln --stats IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes -> RemoteAddress:Port TCP 192.168.0.106:8080 12 326 94 31294 681861 -> 192.168.22.153:8081 4 285 74 27223 652737 -> 192.168.22.153:8082 4 29 20 3447 29124 -> 192.168.22.154:8080 4 12 0 624 0 [root@localhost ~]# ipvsadm -ln --rate IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port CPS InPPS OutPPS InBPS OutBPS -> RemoteAddress:Port TCP 192.168.0.106:8080 0 0 0 0 0 -> 192.168.22.153:8081 0 0 0 0 0 -> 192.168.22.153:8082 0 0 0 0 0 -> 192.168.22.154:8080 0 0 0 0 0
6)测试访问(可中止其中服务器进行测试):
*注:若是没法链接成功,检查DS服务器防火墙是否关了(使用此命令解决:iptables -F;setenforce 0,重启防火墙)
三、配置还原:
(1)ipvsadm -C 清空规则,ipvsadm -ln 确认
(2)iptables -t nat -F: 清空iptables的nat规则
(3)master和slave把网卡所对应的网关(GATEWAY)改回来,vi /etc/sysconfig/network-scripts/ifcfg-eno16777736,重启网卡
systemctl restart network
(4)dr用不到ens37这个网卡(192.168.0.106),在虚拟机上删除桥连网卡,执行:ifdown ens37,在/etc/sysconfig/network-scripts/目录下删除ifcfg-ens37文件,重启网卡:systemctl restart network
上一方案在实际生产中较少使用。
(二)、DR模式(直接路由模式)
经过改写请求报文的MAC地址,将请求发送到真是服务器,真实服务器将响应直接返回给用户,直接路由模式能够极大的提升集群系统的伸缩性,这种方法没有IP隧道的开销,集群中真实的服务器也没有必要必须支持IP隧道协议,只是须要调度器与真实服务器有一块网卡连在同一物理网段上。
一、环境配置
IP准备:
Director节点: (ens33 192.168.22.153 vip ens33:0 192.168.158)
Real server1: (ens33 192.168.22.154 vip lo:0 192.168.158)
Real server2: (ens33 192.168.22.155 vip lo:0 192.168.158)
二、服务器配置
1)DS转发服务器配置,在/usr/local/sbin/目录下建建lvs_dr.sh文件
echo 1 > /proc/sys/net/ipv4/ip_forward ipv=/sbin/ipvsadm vip=192.168.22.158 rs1=192.168.22.154 rs2=192.168.22.155 #删除一个虚拟IP #ifconfig ens33:0 down #增长一个虚拟IP ifconfig ens33:0 $vip broadcast $vip netmask 255.255.255.255 up #增长一条路由 route add -host $vip dev ens33:0 $ipv -C $ipv -A -t $vip:8080 -s wrr $ipv -a -t $vip:8080 -r $rs1:8080 -g -w 1 $ipv -a -t $vip:8080 -r $rs2:8080 -g -w 3
说明:ifconfig ens33:0 192.168.22.158 broadcast 192.168.22.158 netmask 255.255.255.255 up ,表示在现有网卡上建立虚拟IP 192.168.22.158,其实现原理主要是靠TCP/IP的ARP协议。
参数说明:
-g –gatewaying 指定LVS 的工做模式为dr(直接路由模式)(也是LVS 默认的模式)
-r –real-server server-address 真实的服务器[Real-Server:port]
2)[root@localhost ~]# ./lvs_dr.sh
3)真实服务器配置,在两台rs1,rs2都写入配置脚本
[root@localhost ~]# touch lvs_rs.sh
[root@localhost ~]# vi /usr/local/sbin/lvs_rs.sh
#!/bin/bash vip=192.168.22.158 ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip 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
[root@localhost ~]# chmod -R 755 lvs_rs.sh //要受权才能执行
4)[root@localhost ~]# ./lvs_rs.sh
(1)调整arp内核参数的意义:
(1) ARP广播会产生的问题
当客户端发起访问VIP 对应的域名的请求(curl 192.168.22.158)时,根据网络通讯原理会产生ARP 广播,由于负载均衡器dir和真实的服务器rs在同一网络而且VIP设置在集群中的每一个节点上,此时集群内的真实服务器会尝试回答来自客户端计算机的查找VIP的ARP广播,这就会产生问题,你们都说我是"VIP"。
(b)为了达到负载均衡的目的,必须想法办让真实服务器忽略来自客户端计算机的ARP广播请求 ——》 调整arp内核参数
参考:http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
http://blog.chinaunix.net/uid-13423994-id-5146098.html
(2)问题:lvs有vip,real server也有vip,但client请求只访问lvs的vip?
在全部real server上要关闭全部arp请求,致使不能响应client发出的arp请求(至关于哑吧),只有lvs能够响应,这样请求就会传到lvs的vip中,这就是为何要禁止real server 的 arp请求和响应
5)测试:
直接访问192.168.22.158
*注:若是没法链接成功,检查DS服务器防火墙是否关了(使用此命令解决:iptables -F)
三、配置还原(可作为停机脚本)
(1) director服务器
[root@localhost ~]# /sbin/ipvsadm -C [root@localhost ~]# ip addr del 192.168.22.158 dev ens33
(2)real server服务器
[root@localhost ~]# ip addr del 192.168.22.158 dev lo [root@localhost ~]# echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore [root@localhost ~]# echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce [root@localhost ~]# echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore [root@localhost ~]# echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce
为方便使用,真实服务器可编写启停脚本,lvs_rs.sh
#!/bin/bash #description : start realserver VIP=192.168.22.158 /etc/rc.d/init.d/functions case "$1" in start) echo " start LVS of REALServer" /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up 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 ;; stop) /sbin/ifconfig lo:0 down echo "close LVS Directorserver" 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 "Usage: $0 {start|stop}" exit 1 esac
(二)、TUN模式(IP隧道模式)
调度器将请求的报文经过IP隧道转发至真实服务器,而真实的服务器直接将结果返回给用户,调度器只处理请求报文,因为通常网路服务的应答大于请求,采用IP隧道模式,集群系统的最大吞吐量能够提升10倍。
一、环境配置
IP准备:
Director节点: (ens33 192.168.22.153 vip ens33:0 192.168.158)
Real server1: (ens33 192.168.22.154 vip lo:0 192.168.158)
Real server2: (ens33 192.168.22.155 vip lo:0 192.168.158)
1) /etc/sysctl.conf
把 net.ipv4.conf.all.rp_filter和 net.ipv4.conf.default.rp_filter设为0便可
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
系统启动后,会自动加载这个配置文件,内核会使用这个变量
2)命令行
显示一个内核变量 sysctl net.ipv4.conf.all.rp_filter
设置一个内核变量 sysctl -w net.ipv4.conf.all.rp_filter=0
设置完后,会更新内核(实时的内存)中的变量的值,但不会修改sysctl.conf的值
二、服务器配置
1)DS转发服务器配置,在/usr/local/sbin/目录下建建lvs_tun.sh文件
#!/bin/bash ipv=/sbin/ipvsadm vip=192.168.22.158 ifconfig tunl0 $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip dev tunl0 ##添加转发规则 $ipv -C $ipv -A -t 192.168.22.158:8080 -s rr $ipv -a -t 192.168.22.158:8080 -r 192.168.22.154:8080 -i $ipv -a -t 192.168.22.158:8080 -r 192.168.22.155:8080 -i
参数说明:
-i –ipip 指定LVS 的工做模式为隧道模式
[root@localhost ~]# chmod -R 775 lvs_tun.sh
[root@localhost ~]# ./lvs_tun.sh
2)真实服务器配置,在两台rs1,rs2都写入配置脚本
[root@localhost ~]# touch lvs_rs.sh
[root@localhost ~]# vi /usr/local/sbin/lvs_rs.sh
#!/bin/bash vip=192.168.22.158 ifconfig tunl0 $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip dev tunl0 echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_announce echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce echo "0" > /proc/sys/net/ipv4/conf/tunl0/rp_filter echo "0" > /proc/sys/net/ipv4/conf/all/rp_filter
[root@localhost ~]# chmod -R 755 lvs_rs.sh //要受权才能执行
3)[root@localhost ~]# ./lvs_rs.sh
若是无错误表示配置成功.
4)测试:
直接访问192.168.22.158
*注:遇到IP可通,但加端口不通的状况,可检查DS服务器防火墙是否关了(使用此命令解决:iptables -F),再关闭RS服务防火墙。
三、为方便使用,真实服务器可编写启停脚本,lvs_rs.sh
#!/bin/bash #description : start realserver VIP=192.168.22.158 /etc/rc.d/init.d/functions case "$1" in start) echo " start LVS of REALServer" modprobe ipip /sbin/ifconfig tunl0 $VIP netmask 255.255.255.255 broadcast $VIP up echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_announce echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce echo "0" > /proc/sys/net/ipv4/conf/tunl0/rp_filter echo "0" > /proc/sys/net/ipv4/conf/all/rp_filter ;; stop) /sbin/ifconfig tunl0 down echo "close LVS Directorserver" echo "0" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore echo "0" > /proc/sys/net/ipv4/conf/tunl0/arp_announce echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce echo "1" > /proc/sys/net/ipv4/conf/tunl0/rp_filter echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter ;; *) echo "Usage: $0 {start|stop}" exit 1 esac
3、LVS与Keepalived配置(基于DR模型)
一、环境配置
1)IP准备:
Director节点: (ens33 192.168.22.153 vip ens33:0 192.168.158)
Director节点: (ens33 192.168.22.154 vip ens33:0 192.168.158)
Real server1: (ens33 192.168.22.155 vip lo:0 192.168.158)
Real server2: (ens33 192.168.22.156 vip lo:0 192.168.158)
2)程序准备:
[root@localhost ~]# yum install ipvsadm
[root@localhost ~]# yum install keepalived
3)配置系统日志(方便监控运行状况),修改keepalived的日志输入(由于keepalived的日志输出在/var/log/message里面,很差查看,可进行修改)
[root@localhost ~]# vi /etc/sysconfig/keepalived
把KEEPALIVED_OPTIONS="-D" 修改成KEEPALIVED_OPTIONS="-D -d -S 0"
[root@localhost ~]# vi /etc/rsyslog.conf
最后添加:
# keepalived -S 0
local0.* /var/log/keepalived.log
从新启动日志
[root@localhost log]# systemctl restart rsyslog
[root@localhost log]# systemctl restart keepalived
[root@localhost log]# tail keepalived.log
Sep 8 20:51:58 localhost Keepalived_healthcheckers[39423]: Activating healthchecker for service [10.10.10.3]:1358
二、服务器配置
1)keepalived服务器配置
Master端192.168.22.153机器的配置:
[root@localhost ~]# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.22.1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.22.158 } } virtual_server 192.168.22.158 8080 { delay_loop 6 lb_algo wrr lb_kind DR persistence_timeout 50 protocol TCP #sorry_server 192.168.200.200 1358 real_server 192.168.22.155 8080 { weight 2 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8080 } } real_server 192.168.22.156 8080 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8080 } } }
Backup端的192.168.22.154机器配置:
[root@localhost ~]# scp root@192.168.22.153:/etc/keepalived/keepalived.conf /etc/keepalived/
[root@localhost ~]# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.22.1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.22.158 } } virtual_server 192.168.22.158 8080 { delay_loop 6 lb_algo wrr lb_kind DR persistence_timeout 50 protocol TCP #sorry_server 192.168.200.200 1358 real_server 192.168.22.155 8080 { weight 2 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8080 } } real_server 192.168.22.156 8080 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8080 } } }
两个文件主要不一样处:
3)真实服务器配置
两台真实服务器rs一、rs2分别建立lvs_dr.sh文件,内容以下
#!/bin/bash #description: Config realserver VIP=192.168.22.158 /etc/rc.d/init.d/functions case "$1" in start) /sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP up /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
[root@localhost ~]# chmod -R 755 lvs_dr.sh
[root@localhost ~]# sh lvs_dr.sh start
真实服务器的Tomcat服务器,在webapp下放ROOT文件夹,里面放index.html,内容为 :
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> Master Post: 8080. </body> </html>
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> Backup Post: 8080. </body> </html>
3)测试
直接访问以下192.168.22.158:8080
注意防火墙设置,真实服务器最好关闭防火墙。
参考:http://blog.51cto.com/jinlong/1956187 https://blog.csdn.net/Ki8Qzvka6Gz4n450m/article/details/79119665 https://blog.csdn.net/huaishu/article/details/17023061/ http://blog.51cto.com/wgkgood/1102870