一、网络结构
用虚拟机搭建如下的几台机器,并配置如下的ip
关于虚拟机网卡和网络的配置,可以参考 iptables章节,05节:网络转发实验
主机A模拟外网的机器
B为负载均衡的机器
C和D为 RealServer
二、C和D主机的网关设置
C和D机器要设置B为网关,这样C和D的数据,才能通过B,返回到C
三、C和D上安装上nginx
本实验为C和D安装好的docker应用:nginx。安装过程,略。启动好后,占用暴露为80端口。
修改一下nginx的首页,输出其IP,如:
cd /usr/share/nginx/html/
cat > index.html << EOF
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>10.1.0.9 </h1>
</body>
</html>
EOF
四、ipvsadm命令设置LVS
如果我们想要配置一个LVS-NAT集群,可以在角色为调度器的主机上执行如下ipvsadm命令。
ipvsadm -A -t VIP:port -s rr
ipvsadm -a -t VIP:port -r RIP1 -m
ipvsadm -a -t VIP:port -r RIP2 -m
ipvsadm -a -t VIP:port -r RIPN -m
在机器B上执行下面的命令
[root@localhost ~]# ipvsadm -A -t 192.168.56.106:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.56.106:80 -r 10.1.0.9 -m
[root@localhost ~]# ipvsadm -a -t 192.168.56.106:80 -r 10.1.0.10 -m[root@localhost ~]# ipvsadm -Ln
[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.56.106:80 rr-> 10.1.0.9:80 Masq 1 0 0 -> 10.1.0.10:80 Masq 1 0 0
五、负载均衡请求效果
在主机A上执行curl命令,可以看到,是轮循访问两台主机
[root@localhost ~]# curl -X GET http://192.168.56.106
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>10.1.0.9 </h1>
</body>
</html>
[root@localhost ~]# curl -X GET http://192.168.56.106
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>10.1.0.10 </h1>
</body>
</html>