基于 CentOS 7 构建 LVS-DR 群集


文章目录

  • 前言
    • 1、LVS集群
    • 2、DR模式的工作流程图
  • 一、LVS DR模式的配置
  • 二、配置步骤
  • 总结


前言

什么是LVS集群?DR模式?

1、LVS集群

LVS采用的是合入内核模块,先把对于nginx来说要稳定很多,性能和稳定都在一定层度上占据优势,可以做四层负载均衡
LVS通过工作于内核的IPVS模块来实现,主要在netfilter的INPUT链上,此外,还包含了一个用户态工具,ipvdadm,用于用户负载集群定义和集群服务管理

2、DR模式的工作流程图

流程图:
在这里插入图片描述
1、客户端发送访问请求,LVS调度器接受访问请求了以后;
2、报文则会在PREROUTING链中进行自我检查,检查并确认IP是本机,于是再将报文发送到INPUT链,ipvs内核模块确定请求的服务是我们这个线路配置的LVS集群服务,然后再根据自己设定的用户交互均匀策略,在进行选择后端后台RS,然后再将目标MAC地址修改RIP的MAC地址。
因为调度器和后端服务器RS在同一个网段,因此直接互通,将请求发送给选择的RS处理
3、响应完之后再发送给客户端


一、LVS DR模式的配置

![在这里插入图片描述](https://img-blog.csdnimg.cn/d284f0b0ec984a298147ce6524529648.png

我这里准备了四个虚拟机,用第一个作为客户端,第二个作为lvs 第三个和第四个作为web服务端
环境准备:
1、在lvs中安装ipvsadm

[root@slave ~]# yum install -y ipvsadm

2、在两台web服务器中安装httpd

[root@coco ~]# yum install httpd -y

二、配置步骤

1、改变lvs主机的IP地址

[root@lvs ~]# ifconfig ens33:200 192.168.11.200/24

配置好了以后要用其他主机ping一下,看看是否联通,我这里用第一台主机ping过 是没问题的

问题1:如果ping通但是不可以curl通,就说明防火墙配置enforcing改为disabled,如果还是不行,就将四台虚拟机的防火墙关闭,这样一定就行,不要永久关闭,stop临时关闭一下就好了

2、配置web服务器

[root@web1 ~]# echo "hello web test ,ip is `hostname -I`." > /var/www/html/index.html
[root@web1 ~]# systemctl start httpd[root@web2 ~]# echo "hello web test ,ip is `hostname -I`." > /var/www/html/index.html
[root@web2 ~]# systemctl start httpd

将echo代码写入html文档中,两台web服务器都一样的步骤
配置完以后,我们同样用客户端主机去ping
在这里插入图片描述
没问题的话,直接进行下一步!

3、给web服务器配置VIP

[root@web1 ~]# ifconfig lo:200 192.168.11.200 netmask 255.255.255.255 up
[root@web2 ~]# ifconfig lo:200 192.168.11.200 netmask 255.255.255.255 up

注意注意:①这里一定一定要把掩码设置为32位,否则后面会出现curl不通的情况,
注意注意:②这里会存在一个小问题,但是我不知道是不是我的Xshell问题,当你配置VIP的时候,Xshell会自动闪退,自动断开远程连接,这个时候,不要惊慌,直接在原本的虚拟机里面敲入代码,而且反应还很迅速。

4、配置web服务器的路由

[root@web1 ~]# route  add -host 192.168.11.200 dev lo

5、配置ARP路由

[root@web1 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@web1 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@web1 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@web1 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce[root@web2 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@web2 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@web2 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@web2 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

注意:这里的all可以等量换为你自己的接口,如果你是eth接口,就换成eth,如果你是ens33接口,就换成ens33,我这里添加了all,本质上来说是🆗的

5、给lvs配置两台RS

[root@lvs~]#ipvsadm -A -t 192.168.79.110:80 -s rr
[root@lvs ~]#ipvsadm -a -t 192.168.11.200:80 -r 192.168.11.130:80 -g
[root@lvs ~]#ipvsadm -a -t 192.168.11.200:80 -r 192.168.11.131:80 -g
-A添加带有选项的虚拟服务
-t代表着服务地址为主机地址
-a添加服务
-g配置默认网关

6、curl步骤

[root@coco ~]# for ((i=1;i<=10;i++));
> do
> curl 192.168.11.200
> done
hello web test ,ip is 192.168.11.130 .
hello web test ,ip is 192.168.11.132 .
hello web test ,ip is 192.168.11.130 .
hello web test ,ip is 192.168.11.132 .
hello web test ,ip is 192.168.11.130 .
hello web test ,ip is 192.168.11.132 .
hello web test ,ip is 192.168.11.130 .
hello web test ,ip is 192.168.11.132 .
hello web test ,ip is 192.168.11.130 .
hello web test ,ip is 192.168.11.132 .
[root@coco ~]# 

在这里插入图片描述

成功Curl通了!


总结

例如,以上就是LVS DR模式的搭建,简单来说就等于是一个客户端通过lvs服务器访问web服务器的,那么这中间你要保证网段联通,保证curl通。中间断断续续的代码很少,但是暴露出的问题却有很多,大部分我都把我自己的问题写上去了,要是有其他小问题,可以评论区call我。

注意事项: 1、至少要保证有三台虚拟机,因为客户端,LVS服务器,web服务器都需要存在,所以至少一个一台;
                   2、为了防止中间出现,ping百度能通,ping其他不通,curl不通,ping得通的情况,上去第一步就可以把所有的虚拟机的防火墙临时关闭;
                   3、当出现子网掩码没设置对的时候,在设置一遍,就可以将原本的覆盖掉了。

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

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

相关文章

【ChatGPT 指令大全】怎么使用ChatGPT写履历和通过面试

目录 怎么使用ChatGPT写履历 寻求履历的反馈 为履历加上量化数据 把经历修精简 为不同公司客制化撰写履历 怎么使用ChatGPT通过面试 汇整面试题目 给予回馈 提供追问的问题 用 STAR 原则回答面试问题 感谢面试官的 email 总结 在职场竞争激烈的今天&#xff0c;写一…

mysql从每个分组中取特定条件行的全部内容

取每个task_id分组中更新日期最新的一行 采用join的方式完成 select a.task_id,a.theme_id,a.time_unix from table_xxx a join (select task_id,max(time_unix) as max_timefrom table_xxxwhere date < ${date}and date > ${date} - 3and theme_i…

linux网络编程--线程池UDP

目录 学习目标 1线程池 2.UDP通信 3本地socket通信 学习目标 了解线程池模型的设计思想能看懂线程池实现源码掌握tcp和udp的优缺点和使用场景说出udp服务器通信流程说出udp客户端通信流程独立实现udp服务器代码独立实现udp客户端代码熟练掌握本地套接字进行本地进程通信 1…

FreeRTOS源码分析-10 互斥信号量

目录 1 事件标志组概念及其应用 1.1 事件标志组定义 1.2 FreeRTOS事件标志组介绍 1.3 FreeRTOS事件标志组工作原理 2 事件标志组应用 2.1 功能需求 2.2 API 2.3 功能实现 3 事件标志组原理 3.1 事件标志组控制块 3.2 事件标志组获取标志位 3.3 等待事件标志触发 3.4…

ESD接地实时监控系统有哪些功能

ESD接地实时监控系统是一种用于监测和维护静电放电&#xff08;ESD&#xff09;接地的设备和软件系统。静电放电事件可能会对敏感电子元件、设备或工作环境造成损害&#xff0c;因此对ESD接地进行有效的监控至关重要。 ESD接地实时监控系统主要包括以下几个方面的功能&#xf…

小程序的api使用 以及一些weui组件实列获取头像 扫码等

今日目标 响应式单位rpx小程序的生命周期 【重点】20%小程序框架 weui 【重点】 50%内置API 【重点】30%综合练习 1. 响应式rpx 1.1 rpx单位 rpx是微信小程序提出的一个尺寸单位&#xff0c;将整个手机屏幕宽度分为750份&#xff0c;1rpx 就是 1/750&#xff0c;避免不同手…

PCL 可视化球图形

文章目录 一、简介二、实现代码三、实现效果修改之处一、简介 过程很简单,使用pcl::visualization::PCLVisualizer中的addSphere函数就可以了,不过PCL中默认的球的分辨率过小,不够精细,需要我们手动修改一下源码。 二、实现代码 //标准文件 #include <iostream> #in…

QT自带PDF库的使用

QT自带PDF库可以方便的打开PDF文件&#xff0c;并将文件解析为QImage&#xff0c;相比网上提供的开源库&#xff0c;QT自带PDF库使用更方便&#xff0c;也更加可靠&#xff0c;然而&#xff0c;QT自带PDF库的使用却不同于其他通用库的使用&#xff0c;具备一定的技巧。 1. 安装…

以太网DHCP协议(十)

目录 一、工作原理 二、DHCP报文 2.1 DHCP报文类型 2.2 DHCP报文格式 当网络内部的主机设备数量过多是&#xff0c;IP地址的手动设置是一件非常繁琐的事情。为了实现自动设置IP地址、统一管理IP地址分配&#xff0c;TCPIP协议栈中引入了DHCP协议。 一、工作原理 使用DHCP之…

Go语言基础: Switch语句、Arrays数组、Slices切片 详细教程案例

文章目录 一. Switch语句1. Default case2. Multiple expressions in case3. Expressionless switch4. Fallthrough5. break6. break for loop 二. Arrays数组1. when arrays are passed to functions as parameters2. Iterating arrays using range3.Multidimensional arrays …

通向架构师的道路之weblogic与apache的整合与调优

一、BEAWeblogic的历史 BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、 网络应用和数据库应 用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的 开发、集成、部署和管理之中。 BEA WebLogic Server拥有处理关键Web应…

title和h1、b与strong、i和em的区别

title 与 h1 的区别、b 与 strong 的区别、i 与 em 的区别&#xff1f; title 与 h1&#xff1a;h1 标签写在网页的 body 中&#xff0c;title 标签写在网页的 head 中&#xff0c;h1 标签控制一段文字的大小&#xff08;从 h1~h6&#xff09;&#xff0c;title 是网页标题的意…

pytorch求导

pytorch求导的初步认识 requires_grad tensor(data, dtypeNone, deviceNone, requires_gradFalse)requires_grad是torch.tensor类的一个属性。如果设置为True&#xff0c;它会告诉PyTorch跟踪对该张量的操作&#xff0c;允许在反向传播期间计算梯度。 x.requires_grad 判…

TM4C123库函数学习(1)--- 点亮LED+TM4C123的ROM函数简介+keil开发环境搭建

前言 &#xff08;1&#xff09; 首先&#xff0c;我们需要知道TM4C123是M4的内核。对于绝大多数人而言&#xff0c;入门都是学习STM32F103&#xff0c;这款芯片是采用的M3的内核。所以想必各位对M3内核还是有一定的了解。M4内核就是M3内核的升级版本&#xff0c;他继承了M3的的…

【力扣每日一题】2023.8.5 合并两个有序链表

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们两个有序的链表&#xff0c;要我们保持升序的状态合并它们。 我们可以马上想要把两个链表都遍历一遍&#xff0c;把所有节点的…

扫地机器人(dfs基础)

题面 Mike同学在为扫地机器人设计一个在矩形区域中行走的算法&#xff0c;Mike是这样设计的&#xff1a;先把机器人放在出发点 (1,1)(1,1) 点上&#xff0c;机器人在每个点上都会沿用如下的规则来判断下一个该去的点是哪里。规则&#xff1a;优先向右&#xff0c;如果向右不能走…

1-搭建一个最简单的验证平台UVM,已用Questasim实现波形!

UVM-搭建一个最简单的验证平台&#xff0c;已用Questasim实现波形 1&#xff0c;背景知识2&#xff0c;".sv"文件搭建的UVM验证平台&#xff0c;包括代码块分享3&#xff0c;Questasim仿真输出&#xff08;1&#xff09;compile all&#xff0c;成功&#xff01;&…

基于 CentOS 7 构建 LVS-DR 集群 及 配置nginx负载均衡

一、构建LVS-DR集群 1、主机规划 Node01&#xff1a;PC Node02&#xff1a;LVS Node03、Node04&#xff1a;Webserver 2、部署环境 2.1 在Node02上配置 2.1.1 安装ipvsadm管理软件按 [rootlocalhost ~]# yum install -y ipvsadm 2.1.2 配置VIP [rootlocalhost ~]# if…

【力扣每日一题】2023.8.8 任意子数组和的绝对值的最大值

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个数组&#xff0c;让我们找出它的绝对值最大的子数组的和。 这边的子数组是要求连续的&#xff0c;让我们找出一个元素之和…

GG修改器安装与Root环境的安装

关于GG修改器大家应该都有一定的了解吧&#xff0c;就是类似于电脑端CE的一个软件。 GG修改器在百度云盘里请自行下载&#xff01; 百度网盘链接&#xff1a;https://pan.baidu.com/s/1p3KJRg9oq4s0XzRuEIBH4Q 提取码&#xff1a;vuwj 那我要开始了&#xff01; 本来不想讲GG…