LVS-NAT集群搭建

news2025/1/13 13:19:10

目录

一、环境准备

1、准备三台centos服务器

2、实验拓扑

3、NAT模式介绍

 二、LVS-NAT模式部署

1、给lvs服务器安装LVS

2、新建LVS集群

3、添加Real Server服务器节点

4、开启路由转发

5、给后端web服务器配置网关

6、效果测试


一、环境准备

1、准备三台centos服务器

服务器名称主机名IP备注
LVS调度服务器lvs

ens33:192.168.2.10(内网)

ens38:192.168.1.10(外网)

关闭selinux和firewalld
Web1网站服务器web1ens33:192.168.2.20(内网)关闭selinux和firewalld
Web2网站服务器web2ens33:192.168.2.30(内网)关闭selinux和firewalld

注:如果是vmware虚机模拟,建议将两个网段都使用主机模式,如果一个NAT、一个主机模式,会出现LVS转发得时候TCP三次握手失败,在LVS端查看ipvsadm -Lnc,出现tcp状态为SYN_RECV,导致访问VIP页面无法访问。

2、实验拓扑

 如上图,其中:前台Director Server(LVS服务器)上配置VIP和DIP。VIP是虚拟IP,为公网IP。DIP是负载均衡器IP,私有IP,同时也是后台服务器指向的网关。Real Server上配置开启web服务,网关指向DIP。

3、NAT模式介绍

(下图IP并非本次实验实际IP,仅供模式介绍参考)

 NAT模式实际是将LVS当成路由器(linux系统本身也是软路由),将外网IP请求转换成内网IP,并按照指定算法(比如轮询),将请求转发给Real Server。其中web服务器收到请求的source源地址和destination目的地址不是一个网段,所以要配网关,web服务器的网关就是LVS服务器的地址,LVS有两个网段地址,web网关地址应选择与自己同网段的那个IP。

 二、LVS-NAT模式部署

1、给lvs服务器安装LVS

#lvs实际已经集成到linux内核中,这里ipvsadm只是lvs管理工具
yum install ipvsadm -y

【ipvsadm命令】:

创建虚拟服务器

  • -A     添加虚拟服务器
  • -t      设置集群地址(VIP) tcp/udp,-t代表tcp,-u代表udp,后面跟集群IP,VIP
  • -s      指定调度算法,其中:

                         rr表示轮询;

                         wrr表示加权轮询;

                         lc最小连接;

                         wlc加权最小连接;

                         sh源地址哈希

2、新建LVS集群

ipvsadm -A -t 192.168.1.10:80 -s rr

ipvsadm -Ln  #查看集群规则

3、添加Real Server服务器节点

ipvsadm添加、删除服务器节点参数:

-a      添加真实服务器

-d      删除真实服务器

-r       指定真实服务器(Real Server)的地址

-m     使用NAT模式;另外 -g 对应DR模式、-i 对应TUN模式

-w     为节点服务器设置权重,默认为1,只有设置加权轮询或者加权最小连接才生效

#将两个web服务器加入LVS集群,-m表示为NAT模式
ipvsadm -a -t 192.168.1.10:80 -r 192.168.2.20:80 -m
ipvsadm -a -t 192.168.1.10:80 -r 192.168.2.30:80 -m

#补充:如果想删除节点,将-a换成-d即可
#ipvsadm -d -t 192.168.1.10:80 -r 192.168.2.30:80 -m
#查看规则
ipvsadm -Ln

 如上图,当用户访问192.168.1.10:80的时候,LVS就会将请求平均轮询到192.168.2.20:80和192.168.2.30:80服务器上,Masq代表NAT模式。

 

4、开启路由转发

因为LVS的工作原理是路由转发,所以LVS调度服务器需要开启路由转发

vim /etc/sysctl.conf   #添加内容如下

sysctl -p  #生效配置
cat /proc/sys/net/ipv4/ip_forward   #验证是否已打开

5、给后端web服务器配置网关

         原理:前台LVS调度服务器上配置VIP和DIP。VIP是虚拟IP,为公网IP。DIP是负载均衡器IP,私有IP,同时也是后台服务器指向的网关。real server上配置开启httpd服务,网关指向DIP。

        在虚拟机环境中,前台负载均衡服务器上的两个网卡可以用桥接和仅主机模式实现。DIP和后台real server的Ip要求在统一网段。

        同时确保防火墙关闭或对实验主机放行。建议关闭selinux。记得开启real server的80端口。

(1)给Web1服务器配置网关

nmcli connection modify ens33 ipv4.method manual ipv4.gateway 192.168.1.10

nmcli connection down ens33 && nmcli connection up ens33   #重启网卡

(2)给Web2服务器配置网关

nmcli connection modify ens33 ipv4.method manual ipv4.gateway 192.168.1.10

nmcli connection down ens33 && nmcli connection up ens33   #重启网卡

6、效果测试

(1)准备Web服务

在web1和web2服务器分别搭建一个监听端口为80的web服务器,可以使用Nginx、tomcat等可以,并在html页面做好标识,以便测试效果:

Nginx安装、配置与概述_桂安俊@kylinOS的博客-CSDN博客

(2)客户端测试

访问LVS调度服务器的外网IP:

如上可以看到轮询负载均衡效果。

 

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

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

相关文章

【C++右值引用】左右值的交叉引用的具体情景,右值详讲

目录 1.右值和左值 2.左值引用和右值引用 3.左右值的交叉引用的具体情景 3.4当不接受返回值就没有办法优化 1.右值和左值 左值与右值是C语言中的概念,但C标准并没有给出严格的区分方式,一般认为:可以放在左边的,或者能 够取地…

基于stm32单片机的光照检测智能台灯

资料编号&#xff1a;101 下面是相关功能视频演示&#xff1a; 101-基于stm32单片机的光照检测智能台灯照明灯Proteus仿真&#xff08;仿真源码全套资料&#xff09;功能介绍&#xff1a; 1、设置为自动模式下&#xff1a;可以检测光照强度&#xff0c;当光照强度<100Lux的…

QT QThread 多线程操作

在QT中&#xff0c;QT应用程序所在的线程为主线程&#xff0c;也称为“GUI线程”&#xff0c;QT GUI必须运行在此线程上&#xff1b;而非主线程称为“工作者线程”&#xff0c;主要处理从主线程中卸下的一些工作&#xff0c;例如数据的同步访问等。需要明确的是&#xff0c;同一…

SSH框架过时了吗?那就最后分享一份阿里架构师整合的SSH框架实战心得吧!

记得当年 java 的企业级框架还是 ssh 的天下&#xff08;spring&#xff0c;struts和hibernate&#xff09;&#xff0c;但是现在感觉 spring 已经完全把那两个框架甩在后边了。用 spring 的人越来越多&#xff0c;用 struts 的人比原来少多了&#xff0c;用 hibernate 的就更少…

BI-SQL丨SNAPSHOT

快照&#xff08;SNAPSHOT&#xff09; 我们在做BI项目的过程&#xff0c;一旦数据涉及到数据库&#xff0c;那么需要考量到的点就比较多。 1.如果数仓是在项目过程中搭建的&#xff0c;那么需要考虑高可用、灾备机制以及安全性问题&#xff1b; 2.如果我们只是需要连接数据库…

Vue3留言墙项目——头部和底部静态页面搭建

文章目录创建项目头部底部创建项目 Vue中使用scss 头部 头部当中有两个按钮&#xff0c;然后根据设计稿可知&#xff0c;本留言墙中有4个按钮&#xff0c;所以可以自己封装一个按钮组件 按钮组件的博客 components/TopNav.vue <template><div class"topNav…

Vue封装一个按钮组件(不使用框架)

做留言墙项目&#xff0c;根据设计稿&#xff0c;发现有四种按钮&#xff0c;这里不使用框架&#xff0c;自己写一个按钮组件 在components下新建MyButton/MyButton.vue <template><button :class"my-btn btn-${type}"><slot></slot></b…

PLC学习笔记(一):概述

如今&#xff0c;电气装置的控制愈发复杂&#xff0c;仅仅依靠低压电器构建逻辑控制电路显得捉襟见肘&#xff0c;而将逻辑控制电路软件化是在满足控制需求前提下降低成本、提高可靠性的重要途经。 那么&#xff0c;我们是选择单片机还是PLC呢&#xff1f;若选择使用单片机&…

嵌入式开发学习之--初识stm32函数库

提示&#xff1a;本篇文章主要以了解为主。 文章目录前言一、库目录及文件简介二、常用资料总结前言 上一篇说到&#xff0c;其实我们不必去直接操作寄存器&#xff0c;也不必自己去写库函数&#xff0c;stm32官方函数库已经满足我们绝大部分的需求了&#xff0c;这一篇文章&a…

逻辑漏洞挖掘

逻辑漏洞# 逻辑漏洞是指由于程序逻辑输入管控不严或者逻辑太复杂&#xff0c;导致程序不能够正常处理或处理错误&#xff0c;逻辑漏洞根据功能需求的不同产生的漏洞方式也不同。一般出现在网站程序的登录注册、密码找回、验证方式、信息查看、交易支付金额等地方。 这类漏洞不…

【第十五章 java反射机制,获取Class类的实例,创建运行时类的对象,调用运行时类中指定的结构】

第十五章 java反射机制&#xff0c;获取Class类的实例&#xff0c;创建运行时类的对象&#xff0c;调用运行时类中指定的结构 1.java反射机制概述 加载完类之后&#xff0c;在堆内存的方法区中就产生了一个Class类型的对象&#xff08;一个类只有一个Class对象&#xff09;&am…

[计算机毕业设计]改进粒子群算法的监测资源调度

前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着准备考研,考公,考教资或者实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过…

【学海】中位数(Median)的介绍以及如何在不同条件下计算中位数

一、什么是中位数 中位数是指将数据按大小顺序排列起来&#xff0c;形成一个数列&#xff0c;居于数列中间位置的那个数据。中位数用Me表示。 从中位数的定义可知&#xff0c;所研究的数据中有一半小于中位数&#xff0c;一半大于中位数。中位数的作用与算术平均数相近&#…

CAD DWG 比较--DWG Compare ActiveX Control

DWG Compare ActiveX Control AutoDWG DWG 比较 ActiveX 控件&#xff0c;比以往更快&#xff01; DWGCompareX 是一个主动控件 (COM)&#xff0c;可帮助您找出 AutoCAD 图形版本之间的差异并以图形方式显示它们。 主要特征&#xff1a; 显示视图中的差异&#xff0c;对添加的实…

LeetCode-剑指51-数组中的逆序对

1、归并排序 我们可以利用归并排序在合并两个数组时会比较两个数组中的值来确定有多少逆序对。我们用左指针指向左边的数组&#xff0c;右指针指向右边的数组。每当左指针右移时&#xff0c;我们在总数上加上右指针指向位置与起始位置的差值即可。 class Solution { public:i…

基于stm32单片机自动灭火火灾报警装置Proteus仿真

资料编号&#xff1a;102 下面是相关功能视频演示&#xff1a; 102-基于stm32单片机自动灭火火灾报警装置Proteus仿真&#xff08;仿真源码全套资料&#xff09;功能介绍&#xff1a; 火焰传感器的原理&#xff1a;是通过感知外部特殊波段光照强度的突变来判断是否出现火灾&a…

[附源码]java毕业设计汽车租赁管理系统论文

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

C++11 原子变量

目录 什么时原子变量&#xff1f; atomic 类成员 原子变量的使用 C/CLinux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂 什么时原子变量&#xff1f; 原子操作 原子指的是一系列不被 CPU上下文交换的机器指令&#xff0c;这些指令组合在一起就形成了原子操作。…

Design A Twitter Search

title: Notes of System Design No.08 — Design a Twitter Search description: ‘Design a Twitter Search’ date: 2022-05-13 18:01:58 tags: 系统设计 categories: 系统设计 00. What is Twitter Search? 01.Functional Requirement 02. Non-Functional Requirement 03…

【JavaSE】阶段性小结,运用Java实现图书管理系统

文章目录逻辑分析主题框架具体方法添加书籍删除书籍查找书籍借阅书籍归还书籍展示书籍退出系统源码UserNormalUserAdmintUserBookBookListIOperationAddboookOperationDeletbookOperationFindbookOperationShowbookOperationBorrowbookOperationReturnbookOperationExitOperati…