第五次作业 运维高级 构建 LVS-DR 集群和配置nginx负载均衡

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    #安装ipvsadm

ipvsadm -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 1

ipvsadm -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.conf

upstream 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

测试:

相关推荐
CodeWithMe2 分钟前
Nginx入门进阶:从零到高手的实战指南
运维·nginx
鹏大师运维5 分钟前
在银河麒麟V10 SP1上手动安装与配置高版本Docker的完整指南
linux·运维·docker·容器·麒麟·统信uos·中科方德
QMCY_jason8 分钟前
linux 内存占用排查 vm.nr_hugepages
linux·运维·服务器
Ahlson10 分钟前
【fnNAS】docker的nginx配置html
nginx·docker·容器·fnnas
半方白43 分钟前
通过 ks.cfg 文件实现 openEuler 系统自动部署
运维·自动化运维
moppol1 小时前
容器化 vs 虚拟机:什么时候该用 Docker?什么时候必须用 VM?
运维·docker·容器
ZPC82101 小时前
ubuntu 6.8.0 安装xenomai3.3
linux·运维·ubuntu
一梦浮华2 小时前
自学嵌入式 day30 IPC:进程间通信
linux·运维·服务器
精英的英2 小时前
在Ubuntu 24.04主机上创建Ubuntu 14.04编译环境的完整指南
linux·运维·ubuntu
求索小沈2 小时前
ubuntu22.04安装anaconda
linux·运维·服务器