1. 原理
基于 NAT 机制实现. 当用户请求到达 director 之后, director 将请求报文的目标地址 (即 VIP) 改成选定的 realserver 地址, 同时将报文的目标端口也改成选定的 realserver 的相应端口, 最后将报文请求发送到指定的 realserver. 在服务器端得到数据后, realserver 将数据返给 director, 而 director 将报文的源地址和源端口改成 VIP 和相应端口, 然后把数据发送给用户, 完成整个负载调度过程.
2 环境及组网搭建
所有的虚拟机均是在 vmware 中搭建的 Ubuntu 系统, IP 分别为 192.168.1.106 192.168.1.109 192.168.1.110, 作为负载均衡调度的虚拟机上应该有两块网卡, 一个用于提供外部访问的 VIP, 一个作为跟后端 RS 建立连接的 RIP(两个 IP 可以不在同一个网段, 需要保证 RIP 和后端的 RS 在同一网段), 因此给 106 机器增加一块虚拟网卡
ifconfig eth0:0 192.168.1.10 netmask 255.255.255.255 broadcast 192.168.1.100
由于这里我所有的 IP 都是你能够互相 ping 通的, 因此无需设置默认网关
这样通过 ifconfig 命令查看的网卡信息为:
给 109 110 两台 rs 上安装 nginx 服务, 修改 nginx 访问 nginx 主页的信息, 如下:
106 机器作为负载均衡器, 开启消息转发:
echo 1> /proc/sys/net/ipv4/ip_forward
3 通过 ipvsadm 配置 NAT 负载均衡
- ipvsadm -A -t 192.168.1.10:9999 -s rr
- ipvsadm -a -t 192.168.1.10:9999 -r 192.168.1.109:80 -m
- ipvsadm -a -t 192.168.1.10:9999 -r 192.168.1.110:80 -m
查看配置的 ipvs 信息
通过 curl 命令访问虚拟服务, 可以看到 lvs 按照轮训的方式依次将消息转发给 109 和 110 处理
来源: https://www.cnblogs.com/yangang92/p/8851568.html