ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 环境准备和软件安装 ### 网络环境规划 ![](http://om4h63cja.bkt.clouddn.com/17-7-17/78459264.jpg) 按照拓扑规划配置IP,注意先配置arp,后再能配置VIP DIP和RIP配置,此处网关都指向**前端路由** ~~~ Director Server DIP:192.168.8.100 VIP eht0:0:192.168.8.103 Real Server RIP1:192.168.8.101 lo:0 192.168.8.103 Real Server RIP1:192.168.8.102 lo:0 192.168.8.103 ~~~ ### 时间偏差控制 各节点间的时间偏差不能超过1s 添加任务计划的方法 ~~~ # crontab -e */20 * * * * /sbin/ntpdate pool.ntp.org > /dev/null 2>&1 ~~~ ### ipvsadm安装(director server) ~~~ yum install -y ipvsadm ~~~ ## 配置 ### DS配置 ~~~ ifconfig eth0:0 192.168.8.103/24 broadcast 192.168.8.103 up route add -host 192.168.8.103 dev eth0:0 ~~~ #### 打开IP转发功能 ~~~ echo 1 > /proc/sys/net/ipv4/ip_forward ~~~ ### 在RS1和RS2,先配置ARP #### 方法一、使用echo命令进行配置 ~~~ echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore ~~~ #### 方法二、使用sysctl命令进行配置 ~~~ sysctl -w net.ipv4.conf.all.arp_announce=2 sysctl -w net.ipv4.conf.all.arp_ignore=1 ~~~ #### 在RS1和RS2配置IP和网卡别名 在rs1和rs2上,192.168.8.103只和自己在同一网段内,只用来做返回报文的源地址 ~~~ ifconfig lo:0 192.168.8.103 netmask 255.255.255.255 broadcast 192.168.8.103 up ~~~ >[info]确保当目标地址为VIP是响应端口为lo:0,怎么理解? 当请求的目标地址是vip(lo:0),返回报文的源地址也要是vip(lo:0) ~~~ route add -host 192.168.8.100 dev lo:0 ~~~ ### ipvs规则 #### ipvsadm建立DS ~~~ ipvsadm -A -t 192.168.8.103:80 -s rr ~~~ #### ipvsadm建立RS ~~~ ipvsadm -a -t 192.168.8.103:80 -r 192.168.8.101:80 ipvsadm -a -t 192.168.8.103:80 -r 192.168.8.101:80 ~~~ ### 测试 1)在windows测试,Firefox效果显著 2)在linux下测试: DS上无法测试;直接访问本机可能不会经过INPUT链导致 RS上只能测试到本机的内容; 在其他linux系统可正常测试 >[danger]测试注意事项:当挂起虚拟机,恢复之后设置的lo:0别名失效、添加的路由记录失效,需重新写入才能访问成功。 ## 快速部署脚本(同网段) DS配置 ~~~ #! /bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward ipv=/sbin/ipvsadm vip=192.168.1.20 rs1=192.168.1.11 rs2=192.168.1.12 ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip dev eth0:0 $ipv -C $ipv -A -t $vip:80 -s rr $ipv -a -t $vip:80 -r $rs1:80 -g -w 1 $ipv -a -t $vip:80 -r $rs2:80 -g -w 1 ~~~ RS配置 ~~~ #! /bin/bash vip=192.168.1.20 ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip dev lo:0 echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce ~~~