基于 CentOS 7 构建 LVS-DR 群集。
1.准备实验环境
本次实验我准备了4台虚拟机
DS:DIP--192.168.163.138
VIP--192.168.163.200
RIP1(web1)--192.168.163.140
RIP2(web2)--192.168.163.141
Client:user--192.168.163.142
2.配置服务器环境
1)搭建简易的web服务
RIP1
[root@localhost ~]# yum install httpd
[root@localhost ~]# echo "web1 test, ip is `hostname -I` ." > /var/www/html/index.html
[root@localhost ~]# systemctl start httpd
RIP2
[root@localhost ~]# yum install httpd
[root@localhost ~]# echo "web2 test, ip is `hostname -I` ." > /var/www/html/index.html
[root@localhost ~]# systemctl start httpd
使用Client验证
[root@localhost ~]# curl 192.168.163.140
web2 test ip is 192.168.163.140 .
[root@localhost ~]# curl 192.168.163.141
web1 test, ip is 192.168.163.141 .
2)配置VIP虚拟ip地址
[root@localhost ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 5e4131fb-0601-422a-916f-9a0e8b16deb7 ethernet ens33
[root@localhost ~]# ifconfig ens33:200 192.168.163.200/24
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.163.138 netmask 255.255.255.0 broadcast 192.168.163.255inet6 fe80::83c2:22a3:b848:9285 prefixlen 64 scopeid 0x20<link>inet6 fe80::3d2:78bf:c3a6:7bd7 prefixlen 64 scopeid 0x20<link>inet6 fe80::5f89:8967:3a3a:a5f4 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:3b:1d:03 txqueuelen 1000 (Ethernet)RX packets 24394 bytes 25080376 (23.9 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 8102 bytes 717188 (700.3 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0ens33:200: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.163.200 netmask 255.255.255.0 broadcast 192.168.163.255ether 00:0c:29:3b:1d:03 txqueuelen 1000 (Ethernet)lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1000 (Local Loopback)RX packets 77 bytes 9856 (9.6 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 77 bytes 9856 (9.6 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# nmcli connection up ens33
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/8)
3)手动绑定VIP和手写访问VIP的路由
RIP1:
[root@localhost ~]# ifconfig lo:200 192.168.163.200 netmask 255.255.255.255 up
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.163.141 netmask 255.255.255.0 broadcast 192.168.163.255inet6 fe80::83c2:22a3:b848:9285 prefixlen 64 scopeid 0x20<link>inet6 fe80::3d2:78bf:c3a6:7bd7 prefixlen 64 scopeid 0x20<link>inet6 fe80::5f89:8967:3a3a:a5f4 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:d4:2c:1e txqueuelen 1000 (Ethernet)RX packets 4113 bytes 317195 (309.7 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 1935 bytes 218535 (213.4 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1000 (Local Loopback)RX packets 6 bytes 468 (468.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 6 bytes 468 (468.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo:200: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 192.168.163.200 netmask 255.255.255.
[root@localhost ~]# route add -host 192.168.163.200 dev lo
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.163.2 0.0.0.0 UG 100 0 0 ens33
192.168.163.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.163.200 0.0.0.0 255.255.255.255 UH 0 0 0 lo
RIP2同上
4)在DS上配置LVS
下载ipvsadm
[root@localhost ~]# yum install ipvsadm -y
添加ipvsadm服务
[root@localhost ~]# ipvsadm -A -t 192.168.163.200:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.163.200:80 -r 192.168.163.141 -g -w 1
[root@localhost ~]# ipvsadm -a -t 192.168.163.200:80 -r 192.168.163.140 -g -w 1
[root@localhost ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.163.200:80 rr-> 192.168.163.140:80 Route 1 0 0 -> 192.168.163.141:80 Route 1 0 0
5)在RS上配置ARP抑制
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@localhost ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@localhost ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
RIP1和RIP2皆如此
6)结果测试
在Client上进行测试
[root@localhost ~]# for ((i=1;i<=10;i++)); do curl 192.168.163.200;done
web1 test, ip is 192.168.163.141 .
web2 test ip is 192.168.163.140 .
web1 test, ip is 192.168.163.141 .
web2 test ip is 192.168.163.140 .
web1 test, ip is 192.168.163.141 .
web2 test ip is 192.168.163.140 .
web1 test, ip is 192.168.163.141 .
web2 test ip is 192.168.163.140 .
web1 test, ip is 192.168.163.141 .
web2 test ip is 192.168.163.140 .
成功访问到服务
相关文章:
基于 CentOS 7 构建 LVS-DR 群集。
1.准备实验环境 本次实验我准备了4台虚拟机 DS:DIP--192.168.163.138 VIP--192.168.163.200 RIP1(web1)--192.168.163.140 RIP2(web2)--192.168.163.141 Client:user--192.168.163.142 2.配置服务器环境 1)搭建简易的web服务 RIP1 [rootlocalhost ~]# yum …...
防火墙组建双击热备后,点击管理对端设备,老是打不开,怎么办?
环境: 防火墙 8.0.75 AF-2000-FH2130B-SC 问题描述: 防火墙组建双击热备后,点击管理对端设备,老是打不开,怎么办? 浏览器老是加载 解决方案: 1.打开设置查看双机连接的心跳接口是哪个端口 …...
【Kubernetes】Kubernetes之Pod详解
Pod 一、 Pod1. Pod 基础概念2. 在 Kubrenetes 集群中 Pod 使用方式2.1 pasue 容器2.2 kubernetes 中的 pause 容器提供的功能 3. Pod 的概念和结构组成4. Pod 的分类5. Pod 容器的分类5.1 基础容器(infrastructure container)5.2 初始化容器(…...
电商与客服系统完美对接指南源码-无缝对接唯一客服系统-提升电商客户体验...
提升电商客户体验,无缝对接唯一客服系统,助您商城腾飞! 在如今竞争激烈的电商领域,除了优质的商品和吸引人的价格,出色的客户服务同样不可或缺。一个高效的客服系统能够为您的电商商城带来更多的机会,建立顾…...
新知识:Monkey 改进版之 App Crawler
原生Monkey 大家知道Monkey是Android平台上进行压力稳定性测试的工具,通过Monkey可以模拟用户触摸屏幕、滑动、按键等伪随机用户事件来对设备上的程序进行压力测试。而原生的Android Monkey存在一些缺陷: 事件太过于随机,测试有效性大打折扣…...
黑马头条项目学习--Day3: 自媒体文章发布
Day3: 自媒体文章发布 Day3: 自媒体文章发布1) 素材管理-图片上传a) 前期微服务搭建b) 具体实现 2) 素材管理-图片列表a) 接口定义b) 具体实现 3) 素材管理-照片删除/收藏a) 图片删除a1) 接口定义a2) 代码实现 b) 收藏与取消b1) 接口定义b2) 代码实现 4) 文章管理-频道列表查询…...
使用frp实现内网穿透
1、介绍 当我们想把内网的一些资源暴露在公网上时,可以使用内网穿透功能。比如公司的内网服务器,部署了平时需要开发的项目,但是回到家中无法访问,就可以使用内网穿透,将公司内网的接口映射到一台公网的服务器上&a…...
安装 opendr 踩坑记
复现早期的优化算法需要用到opendr,踩坑一天记录!!! 测试是否成功安装的命令 >>> import opendr >>> opendr.demo("texture")失败案例 python 3.8.15 numpy1.23.0 mayavi4.8.1 chumpy0.70 cpython…...
各地区-各行业法人单位、区划数63个指标(2010-2022年)
一、数据介绍 数据名称:各地区-各行业法人单位、区划数63个指标 数据年份:2010-2022年(法人单位至2021年) 数据样本:404条 数据来源:自我整理 二、指标说明 行政区划代码 地区 长江经济带 经度 纬…...
W5500-EVB-PICO作为TCP Client 进行数据回环测试(五)
前言 上一章我们用W5500-EVB-PICO开发板通过DNS解析www.baidu.com(百度域名)成功得到其IP地址,那么本章我们将用我们的开发板作为客户端去连接服务器,并做数据回环测试:收到服务器发送的数据,并回传给服务器…...
web前端面试--递归(斐波那契数列)
web面试题 本人是一个web前端开发工程师,主要是vue框架,整理了一些面试题,今后也会一直更新,有好题目的同学欢迎评论区分享 ;-) web面试题专栏:点击此处 文章目录 web面试题定义源码测试示例 之前去笔试&…...
Vue3 Props组件简单应用(父组件获取子组件数据)
去官网学习→Props | Vue.js 运行示例: 代码:App.vue <template><img alt"Vue logo" src"./assets/logo.png"><h2>Vue Props数据传递</h2><h4>子组件中的数据:{{ content }}</h4>…...
Mybatis查询
返回实体类,必须指定返回类型, resultType不能省略,并且数据库字段名与实体类不一致会填充NULL,实体类我们一般都是驼峰,数据库字段一般都是下划线,所以在查询的时候可以起别名解决,属性填充本质上调用的是…...
如何让ES低成本、高性能?滴滴落地ZSTD压缩算法的实践分享
前文分别介绍了滴滴自研的ES强一致性多活是如何实现的、以及如何提升ES的性能潜力。由于滴滴ES日志场景每天写入量在5PB-10PB量级,写入压力和业务成本压力大,为了提升ES的写入性能,我们让ES支持ZSTD压缩算法,本篇文章详细展开滴滴…...
[数据集][目标检测]PCB板缺陷目标检测数据集VOC格式693张6类别
数据集格式:Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):693 标注数量(xml文件个数):693 标注类别数:6 标注类别名称:["missing_hole",…...
Linux 安装中文输入法
在linux安装ibus输入法 在linux安装ibus输入法 加入开机自启动 运行以下命令以编辑IBus配置文件:如果没有该文件,则可以创建一个新文件。 nano ~/.xprofile将以下内容添加到文件中:这些命令将设置相应的环境变量并启动IBus守护进程。 ex…...
redisson
redisson 使用 1,导入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.12.5</version> </dependency>2,创建配置类 package com.woniu.config;impor…...
源码分析——HashMap(JDK1.8)源码+底层数据结构分析
文章目录 HashMap 简介底层数据结构分析JDK1.8之前JDK1.8之后 HashMap源码分析构造方法put方法get方法resize方法 HashMap常用方法测试 HashMap 简介 HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。 JDK1.8 之前 HashM…...
企业举办活动邀请媒体的意义和重要性
传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 企业举办活动并邀请媒体的意义和重要性是多方面的,主要有以下一些: 1. 品牌曝光与宣传:邀请媒体参与企业活动可以提高企业的品牌曝光度。媒体报道能够…...
从零开始学python(十六)爬虫集群部署
前言 今天讲述Python框架源码专题最后一个部分,爬虫集群部署,前面更新了十五个从零开始学python的系列文章,分别是: 1.编程语法必修篇 2.网络编程篇 3.多线程/多进程/协程篇 4.MySQL数据库篇 5.Redis数据库篇 6.MongoDB数据库篇 …...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
