前言:.LVS现在已成为Linux内核的一部分,默认编译为ip_vs模块,能够自动调用。
DR模式:调度器与各服务器必须在同一网段内
实验环境:
lvs调度器: 192.168.199.201
real-server1: 192.168.199.203
real-server2: 192.168.199.204
vip: 192.168.199.210
一、lvs调度器执行:
1.1#加载ip_vs模块
modprobe ip_vs
lsmod |grep ip_vs
如果没有显示,可以安装,不需要启动
yum install -y ipvsadm
1.2 绑定虚拟ip,这里最好限制vip的网段可用ip只有一个,即/32
vi /root/dr.sh
#!/bin/bash
#绑定一个虚拟ip,对外提供服务
ifconfig ens33:0 192.168.199.210 broadcast 192.168.199.210 netmask 255.255.255.255 up
#给网卡指定一条路由
route add -host 192.168.199.210 dev ens33:0
#清除以前的规则
ipvsadm -C
#添加一个新的虚拟ip记录192.168.199.210
ipvsadm -A -t 192.168.199.210:80 -s rr
#在新增的虚拟ip记录中新增两条realserver记录,-g为dr模式
ipvsadm -a -t 192.168.199.210:80 -r 192.168.199.203:80 -g
ipvsadm -a -t 192.168.199.210:80 -r 192.168.199.204:80 -g
#启用lvs服务
ipvsadm
:wq
1.3启动查看结果
chmod +x dr.sh
./dr.sh
#结果如下
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP node1:http rr
-> 192.168.199.203:http Route 1 0 0
-> 192.168.199.204:http Route 1 0 0
查看ip
ifconfig
1.4#如果想要开机自启的话
echo "sh /root/dr.sh" >> /etc/rc.local
chmod 755 /etc/rc.local
1.5ipvsadm 命令详解
-C 清除表中所有的记录
-A --add-service在服务器列表中新添加一条新的虚拟服务器记录
-t 表示为tcp服务
-u 表示为udp服务
-s --scheduler 使用的调度算法, rr | wrr | lc | wlc | lblb | lblcr | dh | sh | sed | nq 默认调度算法是 wlc
ipvsadm -a -t 192.168.199.210:80 -r 192.168.200.10:80 -m -w 1
-a --add-server 在服务器表中添加一条新的真实主机记录
-t --tcp-service 说明虚拟服务器提供tcp服务
-u --udp-service 说明虚拟服务器提供udp服务
-r --real-server 真实服务器地址
-m --masquerading 指定LVS工作模式为NAT模式
-w --weight 真实服务器的权值
-g --gatewaying 指定LVS工作模式为直接路由器模式(也是LVS默认的模式)
-i --ipip 指定LVS的工作模式为隧道模式
-p 会话保持时间,定义流量呗转到同一个realserver的会话存留时间
二、real-server的配置
2.1安装nginx,
参考我的这篇博文:
https://blog.csdn.net/qq_39677803/article/details/117198730?spm=1001.2014.3001.5502
2.2为了区分两台nginx,稍稍修改一下index.thml
192.168.199.203 :
echo "<h3>real-server111111 </h3>" >> /usr/local/nginx/html/index.html
192.168.199.204 :
echo "<h3>real-server222222 </h3>" >> /usr/local/nginx/html/index.html
2.3启动nginx
nginx
2.4配置两台real-server的vip,一样
vim rs.sh
#!/bin/bash
ifconfig lo:0 192.168.199.210 broadcast 192.168.199.210 netmask 255.255.255.255 up
route add -host 192.168.199.210 dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
:wq
2.5启动
chmod +x rs.sh
./rs.sh
ifconfig
2.6#如果想要开机自启的话
echo "sh /root/dr.sh" >> /etc/rc.local
chmod 755 /etc/rc.local
2.7验证
浏览器输入:http://192.168.199.210/会轮询出现rs的界面