赞
踩
目录
LVS-DR模式工作原理
本实验由四台 Linux构成,分别是 Client、LVS、Ngxin1 和 Nginx2,其中 LVS 的 VIP 为192.168.186.50/24、DIP 为 192.168.186.100/24,Nginx1 的 RIP 为 192.168.186.101/24,Nginx2 的 RIP 为192.168.186.102/24
- [root@Nginx2 ~]# yum install nginx -y
- [root@Nginx2 ~]# systemctl start nginx
- [root@Nginx2 ~]# mkdir -p /data/nginx
- [root@Nginx2 ~]# touch /data/nginx/index.html
- [root@Nginx1 ~]# cat /etc/nginx/conf.d/vhost.conf
- server{
- listen 80;
- server_name www.test.com;
- root /data/nginx;
- index index.html;
-
- }
- [root@Nginx1 ~]# curl 192.168.186.102
- hello,nginx2
- [root@Nginx2 ~]# curl 192.168.186.101
- hello,nginx1
-
- 在 LVS 虚拟机上开启路由转发功能,具体参考命令如下:
- sed -i "s/ip_forward=0/ip_forward=1/g" /etc/sysctl.conf
- sysctl -p | grep net.ipv4.ip_forward
- sysctl -a | grep net.ipv4.ip_forward
- 配置完成后,测试是否能够正常访问 Nginx1 和 Nginx2,具体如下:
- [root@LVS ~]# curl 192.168.186.101
- hello,nginx1
- [root@LVS ~]# curl 192.168.186.102
- hello,nginx2
- yum install -y ipvsadm
- 等待安装完成后,创建 ipvsadm 启动时所需的配置文件:
- touch /etc/sysconfig/ipvsadm
- 然后使用启动该服务,并查看该服务是否启动正常,具体如下:
- [root@LVS ~]# systemctl enable ipvsadm --now
- [root@LVS ~]# systemctl status ipvsadm
- 如果服务启动正常,使用以下命令创建算法为轮询的集群:
- ipvsadm -A -t 192.168.186.50:80 -s rr
- 再将 Nginx1 和 Nginx2 添加为后端 RS,具体命令如下:
- ipvsadm -a -t 192.168.186.50:80 -r 192.168.186.101 -m
- ipvsadm -a -t 192.168.186.50:80 -r 192.168.186.102 -m
- 配置完成后,检查和核实配置是否生效:
- [root@LVS ~]# 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.186.50:80 rr
- -> 192.168.186.101:80 Masq 1 0 0
- -> 192.168.186.102:80 Masq 1 0 0
在 LVS 所在的 ECS 上,多次通过 LVS VIP 访问 web 服务,可以查看到以下现象
- 使用以下命令将当前 LVS 的算法修改为加权轮询:
- ipvsadm -E -t 192.168.186.50:80 -s wrr
- 修改完成后,查看是否生效,具体如下:
- 使用以下命令,将 Nginx1 的权重修改为 2:
- [root@LVS ~]# ipvsadm -e -t 192.168.186.50:80 -r 192.168.186.101 -m -w 2
- [root@LVS ~]# 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.186.50:80 wrr
- -> 192.168.186.101:80 Masq 2 0 0
- -> 192.168.186.102:80 Masq 1 0 0
- [root@Nginx1 ~]# nmcli connection add type dummy ifname dummy2 ipv4.method manual
- ipv4.addresses 192.168.186.50/32
- [root@Nginx2 ~]# nmcli connection add type dummy ifname dummy2 ipv4.method manual
- ipv4.addresses 192.168.186.50/32
- 将 RIP 的网关地址修改为路由器接口地址,参考命令如下:
- [root@Nginx1 ~]# nmcli connection modify ens33 ipv4.gateway 192.168.186.1
- [root@Nginx1 ~]# nmcli connection down ens33
- [root@Nginx1 ~]# nmcli connection up ens33
- [root@Nginx2 ~]# nmcli connection modify ens33 ipv4.gateway 192.168.186.1
- [root@Nginx2 ~]# nmcli connection down ens33
- [root@Nginx2 ~]# nmcli connection up ens33
- 完成网络配置后,修改相应的 arp 内核配置,具体命令如下:
- [root@Nginx1 ~]# cat >> /etc/sysctl.conf << EOF
- > net.ipv4.conf.all.arp_ignore = 1
- > net.ipv4.conf.all.arp_announce = 2
- > net.ipv4.conf.dummy2.arp_ignore = 1
- > net.ipv4.conf.dummy2.arp_announce = 2
- > EOF
- [root@Nginx2 ~]# cat >> /etc/sysctl.conf << EOF
- > net.ipv4.conf.all.arp_ignore = 1
- > net.ipv4.conf.all.arp_announce = 2
- > net.ipv4.conf.dummy2.arp_ignore = 1
- > net.ipv4.conf.dummy2.arp_announce = 2
- > EOF
- 如果本实验中的 LVS 服务器和上实验复用,则需删除残留配置。
- 删除上实验中增加的 LVS 相关配置,具体命令为:
- [root@LVS ~]# ipvsadm -D -t 192.168.186.50:80
- 清理完成后,新增 VIP 相关配置,具体命令如下:
- [root@LVS ~]# nmcli connection add type dummy ifname dummy2 ipv4.method manual
- ipv4.addresses 192.168.186.50/32
- 如果需要,请将 DIP 网关配置为路由器接口地址,参考命令如下:
- [root@LVS ~]# nmcli connection modify ens33 ipv4.gateway 192.168.186.1
- [root@LVS ~]# nmcli connection down ens33
- [root@LVS ~]# nmcli connection up ens33
- 如果是新创建的 LVS 服务器,则仅需要添加 VIP 和修改网关地址即可
- 然后使用以下命令,添加相关配置:
- [root@LVS ~]# ipvsadm -A -t 192.168.186.50:80 -s rr
- [root@LVS ~]# ipvsadm -a -t 192.168.186.50:80 -r 192.168.186.101
- [root@LVS ~]# ipvsadm -a -t 192.168.186.50:80 -r 192.168.186.102
- 添加完成后,查看具体配置,具体如下:
- [root@LVS ~]# 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.186.50:80 rr
- -> 192.168.186.101:80 Route 1 0 0
- -> 192.168.186.102:80 Route 1 0 0
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。