基于 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、当出现子网掩码没设置对的时候,在设置一遍,就可以将原本的覆盖掉了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决MAC M1处理器运行Android protoc时出现的错误

Protobuf是Google开发的一种新的结构化数据存储格式&#xff0c;一般用于结构化数据的序列化&#xff0c;也就是我们常说的数据序列化。这个序列化协议非常轻量级和高效&#xff0c;并且是跨平台的。目前&#xff0c;它支持多种主流语言&#xff0c;比传统的XML、JSON等方法更具…

使用 Docker 部署 canal 服务实现MySQL和ES实时同步

参考 ClientAdapter: Canal的Adapter配置项目 Sync ES&#xff1a;Canal的Adapter中ES同步的配置项 使用 Docker 部署 canal 服务 docker canal-server canal-adapter mysql Canal&#xff08;基于Docker同步mysql数据到elasticsearch&#xff09; Canal部署过程中的错误 0. 环…

SpringBoot 将项目打包成 jar 包

SpringBoot 将项目打包成 jar 包 一、项目打包成 jar 包 首先在 pom.xml 文件中导入 Springboot 的 maven 依赖 <!-- 将应用打包成一个可以执行的 jar 包 --> <build><plugins><plugin><groupId>org.springframework.boot</groupId><…

vue3+vite使用vite-plugin-svg-icons

使用vite-plugin-svg-icons插件显示本地svg图标 在开发项目的时候&#xff0c;经常会用到svg矢量图标&#xff0c;而且我们使用svg以后&#xff0c;页面上加载的不再是图片资源&#xff0c;这对页面性能来说是个很大的提升&#xff0c;而且我们svg文件比img要小很多&#xff0c…

Python系统学习1-6-元组

】目录 一、列表与字符串转换 二、列表推导式 三、元组 1、元组基本操作 2、元组和列表的内存图 四、容器思想 homework 一、列表与字符串转换 (1) 列表转换为字符串&#xff1a; result "连接符".join(列表) # 根据xx条件&#xff0c;循环拼接字符串 # 需…

微信小程序(由浅到深)

文章目录 一. 项目基本配置1. 项目组成2. 常见的配置文件解析3. app.json全局的五大配置4.单个页面中的page配置5. App函数6.tabBar配置 二. 基本语法&#xff0c;事件&#xff0c;单位1. 语法2. 事件3. 单位 三. 数据响应式修改四 . 内置组件1. button2. image3. input4. 组件…

Android 13 Launcher——屏蔽长按非icon区域出现弹窗

目录 一.背景 二.屏蔽此功能 一.背景 长按Launcher非icon区域也是会有弹窗的&#xff0c;会显示小组件等信息&#xff0c;定制开发要求长按非icon区域不要弹窗&#xff0c;我们来实现此功能&#xff0c;先看下未修改前的长按非icon区域的效果 如上图可以看出长按功能显示出壁…

CSS:background 复合属性详解(用法 + 例子 + 效果)

目录 background 复合属性background-color 背景颜色&#xff08;纯&#xff09;background-image 背景图片 或者 渐变颜色background-repeat 背景是否重复background-size 设置图片大小background-position 设置背景图片显示位置background-attachment 设置背景图片是否随页面…

MNIST数据集知识合集

MNIST数据集知识合集 认识MNIST数据集通过本地文件加载MNIST数据集torchvision.datasets加载MNIST数据集可视化&#xff08;即转换成.jpg/.png之类的文件&#xff09;疑惑—datasets.mnist和datasets.MNIST问题—downloadFalse运行报错 搭建CNN用于数字识别 认识MNIST数据集 M…

# X11、Xlib、XFree86、Xorg、GTK、Qt、Gnome和KDE之间的关系

X11、Xlib、XFree86、Xorg、GTK、Qt、Gnome和KDE之间的关系 很多人对于他们是啥是傻傻分不清的&#xff0c;我做了个表格供大家参考。 摘抄&#xff1a; X11是X Window System Protocol, Version 11&#xff08;RFC1013&#xff09;&#xff0c;是X server和X client之间的通…

搭建一个自己的文档网站

目录 简介 快速上手 配置 首页 组件Demo案例 添加搜索 简介 有时候我们可能很好奇&#xff0c;像elementUi或者vue3他们的文档网站是怎么写的&#xff0c;其实写vue文档网站的技术&#xff0c;有两个&#xff1a;一个是vuePress&#xff0c;一个是vitePress。从名字上可…

心法利器[90-95] | 谈校招:合集

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会&#xff0c;与大家一起成长。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。 2022年新一版的文章合集已经发布&#xff0c;累计已经60w字了&#xff0c;获取方式看这里&…

React实现点击切换组件

实现如上组件 组件代码&#xff1a; import { SwapOutlined } from "ant-design/icons" import React, { useState } from "react" import ./index.lessinterface ISwitchTypeProps {onChange?: (val) > booleanactiveKey?: stringleft: { key: str…

Opencv实战(银行卡识别)

目录 模版匹配不同方法对比一个模板匹配多个 直方图及直方图均衡化Mask操作直方图均衡化自适应直方图均衡化 模版匹配 公式 import cv2 #opencv读取的格式是BGR import numpy as np import matplotlib.pyplot as plt#Matplotlib是RGB %matplotlib inline def cv_show(img,nam…

云技术-混沌工程

目录 混沌工程 故障注入 监控和观测 自动化和持续集成 混沌工程 混沌工程&#xff08;Chaos Engineering&#xff09;是一种实验性的系统可靠性工程方法&#xff0c;主动引入故障和异常来测试系统的弹性和容错能力。混沌工程的核心思想是通过模拟故障场景来验证系统在各种异…

105. 从前序与中序遍历序列构造二叉树

题目描述 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,null,n…

2023年加湿器市场数据分析(天猫数据分析怎么做)

随着人们生活水平提高、空调广泛使用&#xff0c;导致皮肤紧绷、口舌干燥、咳嗽感冒等空调病的滋生。可以看出&#xff0c;空气湿度与人体健康以及日常生活有着密切的联系。而加湿器作为室内空气湿度控制的重要工具&#xff0c;在近年来受到了越来越多的重视。根据鲸参谋电商数…

linux鲁班猫代码初尝试[编译镜像][修改根文件系统重编译]

编译镜像 官方百度云盘资料:https://doc.embedfire.com/linux/rk356x/quick_start/zh/latest/quick_start/baidu_cloud/baidu_cloud.html 解压虚拟机压缩包:"鲁班猫\8-SDK源码压缩包\开发环境虚拟机镜像\ubuntu20.04.7z"后既可以用VMware打开,打开后可以看到已经有…

nginx基于源码安装的方式对静态页面、虚拟主机(IP、端口、域名)和日志文件进行配置

一.静态页面 1.更改页面内容 2.更改配置文件 3.测试 二.虚拟主机配置 1.基于IP &#xff08;1&#xff09;在html目录下新建目录存放测试文件 &#xff08;2&#xff09;修改nginx.conf文件&#xff0c;在htttp模块中配置两个server模块分别对应两个IP &#xff08;3&am…

深入解析中国供应商API:关键字搜索接口对接与商品数据交互指南

随着电商行业的快速发展&#xff0c;越来越多的企业开始与中国供应商进行合作。而为了实现有效的数据交换和协作&#xff0c;接口对接成为了不可或缺的一环。本文将深入探讨中国供应商API&#xff0c;介绍如何高效地进行接口对接与数据交互&#xff0c;并提供实用的Python示例代…