1、基于 CentOS 7 构建 LVS-DR 群集。
LVS-DR模式工作原理
首先,来自客户端计算机CIP的请求被发送到Director的VIP。然后Director使用相同的VIP目的IP地址将请求发送到集群节点或真实服务器。然后,集群某个节点将回复该数据包,并将该数据包直接发送到客户端计算机(不经过director),并且以此回复数据包使用的目的VIP 地址作为源IP地址。因此,实际上是客户计算机被“欺骗”了,客户计算机始终认为它正与同一台计算机对话,而实际上它正在发送请求据包给一台计算机(LB),并从另一台计算机(RS)接收回复的数据包。
LVS-DR模式应用特点
1)所有集群节点RS必须和Director在相同的物理网段(即同一个局域网中);
2)所有客户端入站(而不是出站)请求由Director首先接收,并转发给集群节点RS;
3)集群节点RS通常来说最好带外部IP,而不使用Director及某固定机器作为默认网关,以便将数据包直接回复给客户端计算机,且不会产生回包的瓶颈;
4)所有集群节点RS上必须在lo网卡上绑定VIP地址,以便验证通过目的IP非RS的数据包;
5)由于所有集群节点RS上必须在lo网卡上绑定VIP地址,因此,带来arp问题,即集群节点RS默认会相应发往Director VIP的数据包。因此要对所有集群节点RS做ARP抑制处理,把响应VIP的请求交给LVSDirector;
6)很多操作系统都可以用在集群内部的RS真实服务器上只要该操作系统能够实现ARP隐藏,如:Windows,linux,unix;
7)LVS/DR模式不需要开启调度器转发功能,这点和LVS/NAT模式是不同的。
8)LVS/DR Director(服务器数量100台)可以比LVS-NAT Director(服务器数量10-20台)承受更多的并发请求和转发更多的服务器数量
构建LVS-DR集群的步骤
实验环境准备:
LVS | 192.168.159.141 |
---|---|
web1 | 192.168.159.142 |
web2 | 192.168.159.143 |
vip | 192.168.159.200 |
客户端 | 192.168.159.140 |
1.配置LVS虚拟VIP
ifconfig ens33:100 192.168.159.200 netmask 255.255.255.0 up # 采用子接口配置
2.行配置添加LVS服务并增加两台RS
yum install ipvsadm
yum install ipvsadm #安装ipvsadmipvsadm -C
ipvsadm -A -t 192.168159.200:80 -s wrr #添加虚拟服务器
ipvsadm -a -t 192.168.159.200:80 -r 192.168.159.142:80 -g -w 1 #添加真实服务器
ipvsadm -a -t 192.168.159.200:80 -r 192.168.159.143:80 -g -w 1ipvsadm -L -n #查看配置
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.159.200:80 wrr-> 192.168.159.142:80 Route 1 0 0 -> 192.168.159.143:80 Route 1 0
3.在RS端绑定VIP
ifconfig lo:100 192.168.159.200 netmask 255.255.255.255 up
route add -host 192.168.159.200 dev lo #添加本机访问VIP的路由
4.在RS端抑制ARP响应
# 调整内核参数,关闭arp响应
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
5.在RS端书写html页面
echo "this is `hostname -I` " > /var/www/html/index.html
6.在客户端进行域名解析
echo "192.168.159.200 www.hzitedu.com " >>/etc/hosts
7.在客服端测试
2、配置nginx负载均衡。
负载均衡(Load Balance),它在网络现有结构之上可以提供一种廉价、有效、透明的方法来扩展网络设备和服务器的带宽,并可以在一定程度上增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性等。用官网的话说,它充当着网络流中“交通指挥官”的角色,“站在”服务器前处理所有服务器端和客户端之间的请求,从而最大程度地提高响应速率和容量利用率,同时确保任何服务器都没有超负荷工作。如果单个服务器出现故障,负载均衡的方法会将流量重定向到其余的集群服务器,以保证服务的稳定性。当新的服务器添加到服务器组后,也可通过负载均衡的方法使其开始自动处理客户端发来的请求
负载均衡的配置
准备 3台虚拟机,并全部安装 Nginx 服务器
负载均衡服务器 | 192.168.159.141 |
---|---|
web服务器1 | 192.168.159.142 |
web服务器2 | 192.168.159.143 |
1.负载均衡服务器配置
vim /etc/nginx/conf.d/default.confupstream web_server{server 192.168.159.142;server 192.168.159.143;
}server {listen 80;server_name www.test.com;location / {proxy_pass http://web_server;}
}systemctl restart nginx#域名解析
echo “192.168.159.141 www.test.com” > /etc/hosts
Web服务器配置
echo " this is `hostname -I`" > /usr/share/nginx/html/index.html
测试: