东莞seo建站视频,无锡网站制作厂家地址,wordpress page template,做qq群排名的网站是否违规1.前言
LVS#xff08;Linux Virtual Server#xff09;是一个基于 Linux 内核的负载均衡器#xff0c;用于分发网络流量和将请求转发给后端服务器。LVS 提供了多种负载均衡算法和转发模式#xff0c;以满足不同场景和需求的负载均衡需求#xff0c;在LVS中定义虚拟服务的…1.前言
LVSLinux Virtual Server是一个基于 Linux 内核的负载均衡器用于分发网络流量和将请求转发给后端服务器。LVS 提供了多种负载均衡算法和转发模式以满足不同场景和需求的负载均衡需求在LVS中定义虚拟服务的VIPVirtual IP和端口是为了将客户端的请求引导到负载均衡器并进行负载均衡和请求转发虚拟服务的VIP是一个虚拟的IP地址对客户端而言它是服务的入口地址。客户端将请求发送到虚拟服务的VIP地址而不是直接发送到后端服务器的实际IP地址。这样负载均衡器可以根据定义的负载均衡算法将请求转发给后端服务器实现负载均衡和流量分发的功能 2.lvs功能
LVS 提供了三种负载均衡的转发模式
NAT 模式Network Address Translation在LVS的NAT模式中当客户端发送请求时请求经过负载均衡器后负载均衡器会对请求进行地址转换并将请求转发给后端服务器。后端服务器处理请求后将响应返回给负载均衡器负载均衡器再将响应转发给客户端。这种模式下负载均衡器扮演了中间转发角色需要处理请求和响应的转发和转换既要处理请求的接入又要处理请求的响应会存在较大性能瓶颈
DR 模式Direct Routing在LVS的DR模式中负载均衡器通过修改网络的ARP表将客户端请求直接路由到后端服务器。后端服务器直接与客户端进行通信将响应直接返回给客户端而不需要经过负载均衡器。在这种模式下负载均衡器主要负责请求的路由和负载均衡而不参与实际数据包的转发和响应因为只负责转发消耗的资源小因此性能高存在的瓶颈小
TUN 模式Tunneling负载均衡器在网络层上对请求进行封装和解封将请求转发给后端服务器限制比较大实际中较少使用 DR模式相对于NAT模式具有以下优势
减少负载均衡器的工作量DR模式下负载均衡器不需要处理请求和响应的转发和转换可以减轻负载均衡器的负担提高性能和可扩展性
减少延迟由于响应直接由后端服务器返回给客户端无需经过负载均衡器的中转可以减少延迟提高响应速度
可扩展性DR模式允许将负载均衡器和后端服务器分别部署在不同的子网中提供更高的可扩展性和灵活性 lvs负载均衡策略
轮询Round Robin这是最常见的负载均衡策略之一。每个新的请求按照顺序分发给后端服务器。当所有后端服务器都参与负载均衡时请求将按照相等的权重轮流分发给它们。这种策略适用于后端服务器配置相似、负载均匀的情况
加权轮询Weighted Round Robin类似于轮询策略但每个后端服务器分配一个权重值根据权重值分配请求。具有较高权重值的服务器将获得更多的请求。这个策略适用于后端服务器的性能不同希望按照性能分配负载的情况
最少连接Least Connection根据后端服务器的当前连接数来选择最少连接的服务器来处理新请求。这种策略可以确保负载均衡使得请求分布更加均匀适用于长连接或有长时间处理请求的场景
源IP散列Source IP Hash根据客户端的源IP地址对请求进行散列并将其路由到相应的后端服务器。相同的源IP地址将始终被路由到相同的服务器上这对于需要保持会话一致性的应用程序很有用
最快响应时间Least Response Time根据后端服务器的响应时间来选择最快响应的服务器来处理新请求。这种策略尝试将请求发送到能够更快响应的服务器以提供更好的用户体验 3.ipvsadm工具介绍
ipvsadm 是一个管理 Linux Virtual Server (LVS) 内核模块的命令行工具。它允许你配置和管理 IP 负载均衡器
-A 或 --add-service添加一个新的负载均衡服务
-C 或 --clear清除所有现有的负载均衡服务
-D 或 --delete-service删除指定的负载均衡服务
-E 或 --set设置负载均衡服务的属性
a 或 --add-server向负载均衡服务中添加一个后端服务器
-d 或 --delete-server从负载均衡服务中删除指定的后端服务器
-g 或 --gatewaying将负载均衡服务设置为网关模式
-e 或 --expire-nodest设置后端服务器的超时时间
-m 或 --masquerading将负载均衡服务设置为伪装模式
-r 或 --scheduler指定负载均衡服务的调度器算法
-w 或 --weight设置后端服务器的权重
-L 或 --list列出所有负载均衡服务及其相关配置
-S 或 --save将当前配置保存到文件
-R 或 --restore从文件中恢复配置
也可以通过以下命令查看
ipvsadm --help 4.lvs使用
以下就通过使用nat模式和dr模式分别来展示lvs的使用负载均衡策略这里我们统一使用轮询模式
主机信息
nameipportserviceA10.1.60.115、10.1.60.116(虚拟地址)80lvsB10.1.60.11280nginxC10.1.60.11480nginx
nat模式 所有主机均关闭selinux和防火墙
在A主机执行以下配置
开启内核转发
vi /etc/sysctl.conf
net.ipv4.ip_forward 1
执行以下命令使配置生效
sysctl -p
增加虚拟网卡(模拟真实环境中的外网ip)
ifconfig ens160:1 10.1.60.116/24
需要删除的话可以使用down参数
ifconfig ens160:1 down
安装ipvsadm工具用于配置ipvs规则
yum -y install ipvsadm
配置lvs负载均衡服务
ipvsadm -A -t 10.1.60.116:80 -s rr
ipvsadm -a -t 10.1.60.116:80 -r 10.1.60.114:80 -m
ipvsadm -a -t 10.1.60.116:80 -r 10.1.60.112:80 -m
-m配置为nat模式 -r配置后端真实地址 -t配置虚拟地址 -s配置负载均衡策略为rr轮询策略
查看lvs策略 在B、C主机执行以下配置
将网卡的网关配置为A主机的地址即10.1.60.115 vi /etc/sysconfig/network-scripts/ifcfg-ens160 重启网络服务
systemctl restart network
查看路由信息
route -n 更改nginx的默认页面
mv /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.bak
D主机则将C改为D即可
echo this is C /usr/share/nginx/html/index.html
启动nginx服务并配置开机启动
systemctl start nginx
systemctl enable nginx
使用其它主机访问可以发现访问正常不能用同网段的主机访问 RD模式 所有主机均关闭selinux和防火墙
在A主机执行以下配置
配置一个虚拟网卡
ifconfig ens160:1 10.1.60.116/24
ip add 配置lvs规则
ipvsadm -A 10.1.60.116:80 -s rr #配置负载均衡服务
ipvsadm -a -t 10.1.60.116:80 -r 10.1.60.112:80 -g #为负载均衡服务添加后端的转发地址
ipvsadm -a -t 10.1.60.116:80 -r 10.1.60.114:80 -g #为负载均衡服务添加后端的转发地址
-g配置为DR模式 -r配置后端真实地址 -t配置虚拟地址 -s配置负载均衡策略为rr轮询策略
查看lvs规则
ipvsadm -Ln 在B、C主机执行以下配置
增加虚拟网卡配置为A主机的虚拟网卡地址但是只用于接收客户数据不能被外部访问在此就引用lo网卡配置
ifconfig lo:1 10.1.60.116 netmask 255.255.255.255
ip add 优化内核arp参数配置
vi /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore 1
net.ipv4.conf.default.arp_ignore 1
net.ipv4.conf.lo.arp_ignore 1
net.ipv4.conf.all.arp_announce 2
net.ipv4.conf.default.arp_announce 2
net.ipv4.conf.lo.arp_announce 2
执行以下命令使配置生效
sysctl -p
配置路由
route add -host 10.1.60.116 dev lo:1
route -n 在其它主机访问测试
curl 10.1.60.116 可以看到访问虚拟地址可以正常被轮询转发到后端的服务