centos7之LVS-DR模式传统部署

介绍
在这里插入图片描述

优缺点以及适用场景

优点:能负载更多的Realserver减轻LB的压力,性能高于tun模式。
缺点:不支持端口转发(VIP:80必须代理RIP:80),Realserver和LVS需要在同一网段下。
适用:适用于大多数公司,也是大多数公司用的最多的模式。

DR模式:路由模式原理,ip不变主要改MAC地址

1.客户端把请求数据包发给DirectorServer
2.DirectorServer拆包查看(源ip:CIP源MAC:CIP-MAC, 目标ip:VIP 目标MAC:VIP-MAC),这个包是给自己的就会收下数据包。
3.DirectorServer通过算法(rr wrr)找一台合适的RealServer,修改数据包(源ip:CIP源MAC:DIP-MAC, 目标ip:VIP 目标MAC:RIP-MAC),封装发给后端Realserver
4.RealServer收报/拆包发现目标MAC是给自己的就会收下数据包。
5.RealServer会把需要回复的数据加入数据包中并修改数据包(源ip:VIP 源MAC:vip-MAC,目标ip:CIP 目标MAC:CIP-MAC),封包发给客户端

DR模式中后端RealServer为什么要抑制ARP广播

arp工作在数据链路层和网络层,只有找到对方的MAC地址后才能进行TCP三次握手建立链接
当客户端发起arp广播时会询问"vip对应的MAC地址是谁?",LB和RS都有vip,都会对回复arp响应,这样就会出现数据包不经过lvs转发直接发送给后端RealServer的情况。

1、传统部署

lvs基于四层ip+端口转发,不支持基于url和目录的转发
一、准备环境
在这里插入图片描述

二、部署
1、LB部署脚本

# yum -y install ipvsadm
# cat /usr/local/sbin/lvs_dr.sh 
#!/bin/bash
# 开启路由转发
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.1.200
rs1=192.168.1.11
rs2=192.168.1.12
#注意这里的网卡名字
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
# 让vip走虚拟网卡
route add -host $vip dev ens33:2
$ipv -C
$ipv -A -t $vip:80 -s rr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
------------------------------
-A: 表示添加一条虚拟服务器记录
-D: 表示删除虚拟服务ipvsadm -D -t 172.168.1.100:80 删除后它下面的规则也都没有了
-a: 表示添加一条真实服务器的映射规则
-d: 表示删除后端realserver,删除时不要指定权重和模式
-s:表示算法
-t: 表示增加tcp端口
-r:表示增加realserver地址和tcp端口
-g: 表示DR模式
-w: 表示权重

2、RealServer部署脚本

# yum -y install nginx
# cat /usr/local/sbin/lvs_dr_rs.sh 
#/bin/bash                                                                               
vip=192.168.1.200
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
# 让vip走虚拟网卡
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
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

3、执行脚本

[root@lb ~]# bash /usr/local/sbin/lvs_dr.sh
[root@web1 ~]# bash /usr/local/sbin/lvs_dr_rs.sh
[root@web2 ~]# bash /usr/local/sbin/lvs_dr_rs.sh

4、监控检测脚本

# cat /usr/local/sbin/lvs_dr_check.sh 
#!/bin/bash
VIP=192.168.1.200:80
RIP1=192.168.1.11:80
RIP2=192.168.1.12:80
while true
dofor IP in $RIP1 $RIP2docurl -s http://$IP > /dev/null 2>&1if [[ $? -eq 0 ]]then# 检测后端realserver没问题则加入集群ipvsadm -Ln |grep -q $IP || ipvsadm -a -t $VIP -r $IPelse# 如果检测后端realserver有问题则踢出集群,删除的时候不要指定模式和权重ipvsadm -Ln |grep -q $IP && ipvsadm -d -t $VIP -r $IPfidonesleep 1
done

5、注意:不要在LB上用curl测试命令,因为每台服务器上都有vip,直接用curl访问是无法成功的,最好用客户端浏览器/cmd访问。(用linux做客户端最好没有缓存)
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/461635.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Springboot 整合 Java DL4J 实现文本分类系统

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

【探索新视界】体验ONLYOFFICE:打破传统,开启文档编辑与协作新篇章

文章目录 每日一句正能量引言ONLYOFFICE 产品简介功能与特点1. 兼容性2. 实时协作3. 评论和修订4. 模板库5. 数据分析工具6. 跨平台支持7. 安全性和隐私 体验与测评1. 用户界面2. 性能测试3. 协作体验4. 移动办公5. 客户支持 邀请用户使用如何开始 ONLYOFFICE 项目介绍。关于 O…

学Linux的第五天

目录 命令解释器-shell-负责解析用户输入的命令 分类: type --查看命令是内置命令、外置命名、alias命令 注意 Linux 中的特殊符号 拓展 命令别名aliasalias 别名原命令 - 参数 常用的别名untar,wget,getpass,ping,speed,ipe,c 删除别名unalias…

谷歌被俄罗斯罚款2,500,000,000,000,000,000,000,000,000,000,000,000美元

是的!小鹿没有写错!你们也没有看错! 谷歌被俄罗斯法院判决罚款$2,500,000,000,000,000,000,000,000,000,000,000,000(注意不是卢布,是美元),也就是2.5万亿万亿万亿亿,共计36位数的罚…

Spring Cloud Sleuth(Micrometer Tracing +Zipkin)

分布式链路追踪 分布式链路追踪技术要解决的问题,分布式链路追踪(Distributed Tracing),就是将一次分布式请求还原成调用链路,进行日志记录,性能监控并将一次分布式请求的调用情况集中展示。比如各个服务节…

Vision - 开源视觉分割算法框架 Grounded SAM2 配置与推理 教程 (1)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/143388189 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 Ground…

百度如何打造AI原生研发新范式?

👉点击即可下载《百度AI原生研发新范式实践》资料 2024年10月23-25日,2024 NJSD技术盛典暨第十届NJSD软件开发者大会、第八届IAS互联网架构大会在南京召开。本届大会邀请了工业界和学术界的专家,优秀的工程师和产品经理,以及其它行…

初认识构建工具

初认识构建工具Webpack & Vite 目录 前言webpack 使用步骤配置文件 _entry_output✨_loader_babel_plugin_source map 开发服务器 前言 不同于node中编写代码,在html、css、js中不能放心使用模块化规范,主要是浏览器兼容性问题,以及…

数据结构 ——— 向上调整建堆和向下调整建堆的区别

目录 前言 向下调整算法(默认小堆) 利用向下调整算法对数组建堆 向上调整建堆和向下调整建堆的区别​编辑 向下调整建堆的时间复杂度: 向上调整建堆的时间复杂度: 结论 前言 在上一章讲解到了利用向上调整算法对数组进行…

分享几款开源好用的图片在线编辑,适合做快速应用嵌入

图片生成器是指一种工具或软件,用于自动生成图片或图像内容,通常依据用户设定的参数或模板进行操作。这种工具能够帮助用户快速创建视觉效果丰富的图像,而无需具备专业的设计技能。 在数字化时代,图片编辑已经成为日常工作和生活的…

我为何要用wordpress搭建一个自己的独立博客

我在csdn有一个博客,这个博客是之前学习编程时建立的。 博客有哪些好处呢? 1,可以写自己的遇到的问题和如何解决的步骤 2,心得体会,经验,和踩坑 3,可以转载别人的好的技术知识 4,宝贵…

ts:使用fs内置模块简单读写文件

ts:使用fs内置模块简单读写文件 一、主要内容说明二、例子(一)、fs模块的文件读写1.源码1 (fs模块的文件读写)2.源码1运行效果 三、结语四、定位日期 一、主要内容说明 在ts中,我们可以使用内置的fs模块来…

十个常见的软件测试面试题,拿走不谢

所有面试问题一般建议先总后分的方式来回答,这样可以让面试官感觉逻辑性很强。 1. 自我介绍 之所以让我们自我介绍,其实是面试官想找一些时间来看简历,所以自我介绍不用太长的时间,1-2分 钟即可。 自我介绍一般按以下方式进行介…

C++中关于 <functional> 的使用

#include <functional> 是 C 标准库中的一个头文件&#xff0c;主要用于提供与函数对象、函数指针和函数适配器相关的功能 一&#xff1a;定义方式 1. 定义和使用 std::function 和 Lambda 表达式 2&#xff1a;使用 std::bind 你可以使用 std::bind 来绑定函数参数&am…

Axios 请求超时设置无效的问题及解决方案

文章目录 Axios 请求超时设置无效的问题及解决方案1. 引言2. 理解 Axios 的超时机制2.1 Axios 超时的工作原理2.2 超时错误的处理 3. Axios 请求超时设置无效的常见原因3.1 配置错误或遗漏3.2 超时发生在建立连接之前3.3 使用了不支持的传输协议3.4 代理服务器或中间件干扰3.5 …

WPF+MVVM案例实战(十五)- 实现一个下拉式菜单(上)

文章目录 1 案例效果2、图标资源下载3、功能实现1.文件创建2、菜单原理分析3、一级菜单两种样式实现1、一级菜单无子项样式实现2、一级菜单有子项样式实现 4、总结 1 案例效果 提示 2、图标资源下载 从阿里矢量素材官网下载需要的菜单图片&#xff0c;如下所示&#xff1a; …

【环境搭建】Apache ZooKeeper 3.8.4 Stable

软件环境 Ubuntu 20.04 、OpenJDK 11 OpenJDK 11&#xff08;如果已经安装&#xff0c;可以跳过这一步&#xff09; 安装OpenJDK 11&#xff1a; $ sudo apt-get update$ sudo apt-get install -y openjdk-11-jdk 设置 JAVA_HOME 环境变量&#xff1a; $ sudo gedit ~/.bash…

后台管理系统的通用权限解决方案(九)SpringBoot整合jjwt实现登录认证鉴权

1&#xff09;创建maven工程jjwt-login-demo&#xff0c;并配置其pom.xml文件如下 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-ins…

国考报名照片无法使用照片审核工具上传失败的解决办法

国考报名过程中&#xff0c;照片审核是至关重要的一步&#xff0c;但许多考生在上传照片时遇到了难题&#xff0c;导致无法继续报名&#xff0c;从而影响抢考场位置&#xff0c;下面就介绍如何快速完成照片处理、审核和上传过审的技巧。 一、国考报名照片基本要求首先&#xff…

vue中如何为不同功能设置不同的默认打印设置(设置不同的打印机)

浏览器自带的window.print 功能较简单&#xff0c;这里使用LODOP露肚皮打印 以下是vue2示例&#xff1a; 从官网中下载Lodop和C-Lodop官网主站安装包并安装到本地电脑可以全局搜索电脑找到安装文件LodopFuncs.js&#xff0c;也可以直接复制我贴出来的文件 //用双端口加载主JS…