DR调度服务器 192.168.255.128
Nginx节点服务器1 192.168.255.130
Nginx节点服务器2 192.168.255.131
统一虚拟ip(vip) 192.168.255.188
访问客户端 192.168.255.134
第一步首先关掉所有虚拟机的防火墙
systemctl stop firewalld.service
setenforce 0
一、配置敷在调度器
1、加载ip_vs模块
modprobe ip_vs
cat /proc/net/ip_vs #查看模块加载结果
2、配置虚拟IP地址
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0 #若隧道模式,复制为ifcfg-tunl0
vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.255.188
NETMASK=255.255.255.255 #子网掩码全部为一,避免找不到
3、调整proc相应参数
因为DR调度器不再作为网关,也就是没有路由转发,所以需要关闭icmp的重定向,不充当路由器
vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
4、配置负载分配策略
yum -y install ipvsadm
ipvsadm-save > /etc/sysconfig/ipvsadm #这一步不能忘,否则ipvsadm无法正常启动
#配置负载均衡策略
ipvsadm -C
ipvsadm -A -t 192.168.255.188:80 -s rr #添加虚拟服务器
ipvsadm -a -t 192.168.255.188:80 -r 192.168.80.12:80 -g #若隧道模式,-g替换为-i
ipvsadm -a -t 192.168.255.188:80 -r 192.168.80.13:80 -g #添加真实服务器
ipvsadm
systemctl start ipvsadm
ipvsadm -ln #查看节点状态,Route代表 DR模式
二、布置共享服务器
详情可见前一篇博客中nfs的配置,与NAT相比,无需改变
nfs看这里
两台节点服务器与nfs服务器挂载
临时挂载 mount 192.168.255.133:/opt/html /usr/share/nginx/html
永久挂载 vim /etc/fstab
192.168.255.133:/opt/html /usr/share/nginx/html nfs defaults,_netdev 0(不备份) 0(加载顺序)
三、设置节点服务器
1、在lo网卡中设置虚接口lo:0
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.255.188
NETMASK=255.255.255.255
可以添加一条路由记录
route add -host 192.168.255.188 dev lo:0 #临时
vim /etc/rc.local #永久
/sbin/route add -host 192.168.80.188 dev lo:0
chmod +x /etc/rc.d/rc.local #赋予执行权限
2、调整内核的 ARP 响应参数以阻止更新 VIP 的 MAC 地址,避免发生冲突
vim /etc/sysctl.conf
......
net.ipv4.conf.lo.arp_ignore = 1 #系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2 #系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p