部署LVS的NAT模式

news2024/9/30 15:29:08

实验准备


#负载调度器#
192.168.116.40       #内网
12.0.0.100          #外网
先添加双网卡
 
#web服务器#
192.168.116.20       #web1
192.168.116.30       #web2
 
#nfs共享服务#
192.168.116.10       #nfs
 
systemctl stop firewalld
setenforce 0
 

1.nfs共享文件

1.在主机上准备

 yum install -y rpcbind nfs-utils

准备共享目录

[root@test01 ~]# mkdir /var/www/html/{accp,benet} -p
[root@test01 ~]# cd /var/www/html
[root@test01 html]# ls
accp  benet

准备网页内容

[root@test01 html]# echo '<h1>this is test web01 page!</h1>' > accp/test.html
[root@test01 html]# echo '<h1>this is test web02 page!</h1>' > benet/test.html

 做共享操作: vim /etc/exports,共享本机的文件目录

/var/www/html/accp 192.168.116.0/24(rw,sync,no_squash)
/var/www/html/benet 192.168.116.0/24(rw,sync,no_squash)

设置开机自启并启动

systemctl enable --now rpcbind nfs

用exportfs -rv刷新,再用showmount -e,查看是否共享出去

2.在第二台服务器上

完成关闭防火墙,showmount -e 主机的ip地址,查看是否能获得共享

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# showmount -e 192.168.116.10
Export list for 192.168.116.10:
/var/www/html/benet 192.168.116.0/24
/var/www/html/accp  192.168.116.0/24

3.第三台也是如此 

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# showmount -e 192.168.116.10
Export list for 192.168.116.10:
/var/www/html/benet 192.168.116.0/24
/var/www/html/accp  192.168.116.0/24

 2.准备节点服务器

1.安装nginx(给两台服务器都安装)

2.查看nginx的配置文件

vim nginx.conf,发现网页根目录位置在这

[root@localhost nginx]# cd conf.d/
[root@localhost conf.d]# ls
default.conf
[root@localhost conf.d]# vi default.conf

 

3. 将目录下面文件移到/opt目录下,然后将主机的/var/www/html/benet永久挂载到当前服务器的此目录下

 永久挂载:/etc/fstab

 

 mount -a|df -h

 

 再将原来移走的html文件移动回来

 到第二台服务器上也是如此配置,挂载共享目录选择accp

 把长连接等待关闭,vim/usr/nginx/nginx.conf,调为0,别忘了调完重启nginx!!

 3.做LVS负载均衡器

准备一个网关服务器,配置网卡,要一头对内一头对外,配置完后重启

ens33:192.168.116.40

ens36:12.0.0.100

修改网卡地址段,

 开一台window主机做客户端

配置网络适配器

配置完后ping测是否成功

配置完记得重启网卡和nginx

在网关服务器上配置路由转发功能

vim /etc/sysctl.conf

 查看有没有生效

[root@www network-scripts]# sysctl -p
net.ipv4.ip_forward = 1
[root@www network-scripts]# cat /proc/sys/net/ipv4/ip_forward
1

4.加载模块

  modprobe ip_vs

[root@www network-scripts]# cat /proc/net/ip_vs          #查看是否开启成功
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
 

 

 在网关服务器里安装ipvsadm,并开启

搭建本地yum源

[root@www yum.repos.d]# yum -y install ipvsadm

[root@www yum.repos.d]# ipvsadm-save >/etc/sysconfig/ipvsadm
[root@www yum.repos.d]# systemctl start ipvsadm

[root@www yum.repos.d]# ipvsadm -C#清空策略
[root@www yum.repos.d]# ipvsadm -A -t 12.0.0.100:80  -s rr

                                           #添加一个调度策略,并设置为轮询

 [root@www yum.repos.d]# ipvsadm -a -t 12.0.0.100:80 -r 192.168.116.20:80 -m

                                         #配置指定服务器1地址
[root@www yum.repos.d]# ipvsadm -a -t 12.0.0.100:80 -r 192.168.116.30:80 -m

                                        #配置指定服务器2地址
[root@www yum.repos.d]# ipvsadm#重新加载

 

5.进入客户端测试

访问调度器的地址,刷新,轮询到另外一台

此时~!LVS的NAT模式搭建成功

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

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

相关文章

Python-Selenium-使用 pywinauto 实现 Input 上传文件

当前环境&#xff1a;Win10 Python3.7 pywinauto0.6.8&#xff0c;selenium3.14.1 示例代码 from pywinauto import Desktop import osapp Desktop() dialog app[打开] dialog[Edit].set_edit_text(os.getcwd() .\\example-01.jpg) dialog[Button].click() 其他方法&…

接口测试的工具(3)----postman+node.js+newman

1.安装newman&#xff1a;输入命令之后 一定注意 什么都不要操作 静静的等待结束就行了。 2.安装失败的对此尝试不行 在用下面的方法 解压一下就行了 3.验证是否成功 多次尝试是可以在线安装成功的

SpringCloudAliBaba篇之Seata:分布式事务组件理论与实践

1、事务简介 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在关系数据库中&#xff0c;一个事务由一组SQL语句组成&#xff0c;事务具有4个属性&#xff1a;原子性、一致性、隔离性、持久性。这四个属性通常称为ACID原则。 原子性(atomici…

在非联网、无网络环境下,fpm的安装和生成RPM包的使用案例

文章目录 前言1、安装fpm1.1、安装Ruby环境1.2、gem 安装 fpm 2、fpm使用2.1、fpm常用参数2.2、fpm使用案例2.2.1、fpmFirstDemo文件夹2.2.3、编写脚本文件2.2.4、生成RPM包2.2.5、RPM安装与卸载测试 前言 由于fpm采用Ruby语言开发&#xff0c;因此在使用之前需要先在您的虚拟…

AI日报:OpenAI扩大创业基金计划

欢迎订阅专栏 《AI日报》 获取人工智能邻域最新资讯 文章目录 OpenAI拓宽Converge启动程序变压器模型背后的思想建立启动融资新闻AutoGen AI支点其他 OpenAI拓宽Converge启动程序 ChatGPT制造商OpenAI正在扩大其Converge AI创业计划。 OpenAI的Converge产品于2022年12月首次…

力扣225. 用队列实现栈【附进阶版】

文章目录 力扣225. 用队列实现栈示例思路及其实现两个队列模拟栈一个队列模拟栈 力扣225. 用队列实现栈 示例 思路及其实现 两个队列模拟栈 队列是先进先出的规则&#xff0c;把一个队列中的数据导入另一个队列中&#xff0c;数据的顺序并没有变&#xff0c;并没有变成先进后…

【Python】—— 如果使用matplotlib做数据可视化

matplotlib做数据可视化 相关知识掌握matplotlib的基本使用方法1. 折线图2. 散点图3. 柱状图4. 饼图5. 直方图6. 等高线图7. 图形定制 掌握数据处理的基本方法1. 数据筛选2. 缺失值处理3. 异常值处理 理解数据可视化的原则和方法1. 选择合适的图表类型2. 避免数据混淆3. 突出重…

继电器的工作原理及驱动电路

继电器是具有隔离功能的自动开关元件&#xff0c;广泛应用于遥控、遥测、通讯、自动控制、机电一体化及电力电了设备中&#xff0c;是最重要的控制元件之一。继电器实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。…

camera曝光时间

曝光和传感器读数 相机上的图像采集过程由两个不同的部分组成。第一部分是曝光。曝光完成后&#xff0c;第二步就是从传感器的寄存器中读取数据并传输&#xff08;readout&#xff09;。 曝光&#xff1a;曝光是图像传感器进行感光的一个过程&#xff0c;相机曝光时间&#xf…

《PySpark大数据分析实战》-12.Spark on YARN配置Spark运行在YARN上

&#x1f4cb; 博主简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 热衷于各种主流技术&#xff0c;热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员&#xff08;PCTA&#xff09;、TiDB数据库专家&#xff08;PCTP…

创建型设计模式 | 原型模式

一、原型模式 1、原理 原型模式&#xff0c;用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象&#xff0c;而且不需要知道任何创建的细节。原型像是一个模板&#xff0c;可以基于它复制好多…

Leetcod面试经典150题刷题记录 —— 双指针篇

双指针篇 1. 验证回文串Python3 2. 判断子序列Python3双指针 3. 两数之和 II - 输入有序数组Python3 4. 盛最多水的容器Python3双指针 5. 三数之和 1. 验证回文串 题目链接&#xff1a;验证回文串 - leetcode 题目描述&#xff1a; 如果在将所有大写字符转换为小写字符、并移除…

支持可视化提取变量,Apipost配置变量不要太简单

在调试接口时我们需要将响应结果中的某个字段配置为环境变量在其他接口中引用&#xff0c;之前在Apipost中需要配置脚本而在最近Apipost后执行操作中可以进行可视化的断言和变量提取&#xff0c;无需配置繁琐脚本。 这里我们在登录接口下配置一条Token环境变量&#xff0c;在后…

【百度PARL】强化学习笔记

文章目录 强化学习基本知识一些框架Value-based的方法Q表格举个例子 强化的概念TD更新 Sarsa算法SampleSarsa Agent类 On_policy vs off_policy函数逼近与神经网络DQN算法DQN创新点DQN代码实现model.pyalgorithm.pyagent.py总结&#xff1a;举个例子 实战 视频&#xff1a;世界…

scrapy的入门和使用

scrapy的入门使用 学习目标&#xff1a; 掌握 scrapy的安装应用 创建scrapy的项目应用 创建scrapy爬虫应用 运行scrapy爬虫应用 scrapy定位以及提取数据或属性值的方法掌握 response响应对象的常用属性 1 安装scrapy 命令:     sudo apt-get install scrapy 或者&#x…

使用令牌桶和漏桶实现请求限流逻辑

实现请求限流 令牌桶算法原理实现案例案例目的:实例demo运行结果: 漏桶算法原理:实现案例:案例目的:案例代码运行结果: 令牌桶算法和漏桶算法是两种常用的限流算法&#xff0c;用于控制系统对请求或数据的访问速率。下面分别详细解释这两种算法的原理. 令牌桶算法 原理 令牌桶…

二进制枚举算法

二进制 : 也就是只有0和1的进制表示 ; 二进制枚举算法 一个二进制数 x 可以表示 S 的一个子集&#xff0c;某个二进制位i上为0表示没有选i元素&#xff0c;为1表示选了该元素放入子集,比如13为1101就表示选了0,2,3号元素;对于一个长度为N的序列(也就是包含N个元素)有2^N个子…

深入理解PyTorch中的Hook机制:特征可视化的重要工具与实践

文章目录 一、前言1. 特征可视化的重要性2. PyTorch中的hook机制简介 二、Hook函数概述1. Tensor级别的hook&#xff1a;register_hook()2. Module级别的hook 三、register_forward_hook()详解1. 功能与使用场景2. 示例代码与解释3. 在特征可视化中的具体应用 四、register_bac…

数据结构--图(更新ing~)

树具有灵活性&#xff0c;并且存在许多不同的树的应用&#xff0c;但是就树本身而言有一定的局限性&#xff0c;树只能表示层次关系&#xff0c;比如父子关系。而其他的比如兄弟关系只能够间接表示。 推广--- 图 图形结构中&#xff0c;数据元素之间的关系是任意的。 一、图…

C语言快速排序算法以及代码

接下来我们将用图像模拟来一步步演示快速排序的过程&#xff0c;这样我们将会通过视觉和大脑一起来梳理快速排序的思路。 后文示例的C语言代码将实现图像模拟的过程。 一、图像模拟 快速排序 过程 我们选取十个数字0~9当做我们的排序数字&#xff0c;并将其打乱。然后我们将…