负载均衡后端服务器通过NFS实现文件管理

news2024/9/9 6:14:38

背景说明

在做负载均衡时有多台Web服务器提供访问服务,通过负载均衡器调度分发。但如果将网站文件都分别部署在所有Web服务器上,则需要对所有Web服务器都进行文件维护,同时需要考虑文件同步问题,这将带来极大的工作量。

解决方案可以将网站文件部署在NFS文件服务器上,多台Web挂载文件服务器的分区,这样只需维护NFS文件服务器上的网站文件即可。方便扩展Web服务器的同时,也极大降低了工作量。

本教程介绍Linux CentOS 7.x下的NFS服务端与客户端的搭建

准备工作

Server端:文件服务器1台

Client端:WEB服务器1台或以上

Server端文件服务器部署

1、安装NFS

yum install nfs-utils rpcbind -y

2、将NFS和rpcbind加入开机启动

systemctl enable nfs
 
systemctl enable rpcbind

3、启动NFS和rpcbind

systemctl start nfs
 
systemctl start rpcbind

4、配置/etc/exports

注意:文件内容请根据实际情况修改,主要是web服务器的内网ip填写正确(这里的192.168.0.2与192.168.0.3表示2台Web服务器的内网IP)

/home/wwwroot 192.168.0.2(rw,async,root_squash) 192.168.0.3(rw,async,root_squash)

括号内参数说明:

rw 在NFS卷上同时允许读取和写入请求。
ro 在NFS卷上只允许读取请求。
sync 只有在更改已提交到稳定存储后才会对请求进行回复。 (默认)
async 此选项允许NFS服务器违反NFS协议并在该请求所做的任何更改已提交到稳定存储器之前对请求进行回复。
secure 此选项要求请求源自小于IPPORT_RESERVED(1024)的 Internet端口。 (默认)
insecure 此选项接受所有端口。
wdelay 如果其怀疑另一个相关的写入请求可能正在进行或可能很快到达,则延迟向磁盘提交写入请求。 (默认)
no_wdelay 如果同时设置了异步,此选项不起作用。如果NFS服务器怀疑另一个相关的写入请求可能正在进行或可能很快到达,则NFS服务器通常会将写入请求延迟提交给磁盘。这允许多个写入请求提交到磁盘,其中一个操作可以提高性能。如果NFS服务器主要接收小的无关请求,这种行为实际上可能会降低性能,因此no_wdelay可用于关闭它。
no_subtree_check 此选项禁用子树检查,它具有温和的安全影响,但可以提高某些情况下的可靠性
root_squash 将请求从uid / gid 0映射到匿名uid / gid。请注意,这不适用于可能同样敏感的任何其他uid或gids,例如用户bin或组工作人员。
all_squash 将所有uids和gids映射到匿名用户。用于NFS导出的公共FTP目录,新闻spool目录等。
no_all_squash Turn off all squashing. (Default)
anonuid=UID 这些选项显式设置匿名帐户的uid和gid。此选项主要适用于PC / NFS客户端,您可能希望所有请求显示为来自一个用户。例如,在下面的示例部分中考虑/ home / joe的导出条目,它将所有请求映射到uid 150。

5、检查是否生效

exportfs -rv  #配置立即生效
 
showmount -e  #查看NFS共享的目录

如显示类似于以下内容,表示设置成功
Export list for VM_16_4_centos:
/home/wwwroot 192.168.0.2,192.168.0.3

客户端配置

1、安装NFS

yum install nfs-utils rpcbind -y

2、将NFS和rpcbind加入开机启动

systemctl enable nfs
 
systemctl enable rpcbind

3、启动NFS和RPCbind

systemctl start nfs
 
systemctl start rpcbind

4、配置挂载分区/etc/fstab

注意:这里的192.168.0.1是指NFS文件服务器的内网ip, 请以实际情况为准

192.168.0.1:/home/wwwroot /home/wwwroot nfs defaults,_netdev 0 0

5、检查挂载

mount -a
 
df -TH

此时可以看到挂载的/home/wwwroot分区为192.168.0.1(如下所示)
192.168.0.1:/home/wwwroot nfs4 53G 1.6G 49G 4% /home/wwwroot
注意:每台web服务器都需要安装和挂载

小结

以本教程为例,文件存储在NFS文件服务器的/home/wwwroot上,而每台 web服务器已通过nfs挂载文件服务器路径,在web服务(比如apache)中直接调用/home/wwwroot地址,这样程序文件的部署和修改只需在文件服务器上操作即可。

额外说明

如NFS文件服务器开启防火墙则有可能造成Web服务器挂载失败,可关闭防火墙或做如下配置

firewall-cmd --add-service=nfs --permanent
 
firewall-cmd --reload

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

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

相关文章

Windows远程桌面无法拷贝文件问题

场景说明 Winwdows远程桌面,相比Linux方便一点就是,同是windows连接,其中复制粘贴功能,可以在两个windows无缝切换。 但最近笔者远程一台测试windows服务器时,发现无法在服务器上复制内容到本地,也无法从…

西门子s7第三方(S7netplus)读写操作

和西门子PLC通讯需要使用S7netplus​​这个包,可以在NuGet​​上搜索下载,下载后引入命令空间using S7.Net;​​ 创建PLC对象进行连接使用Write Read进行读写操作即可不需要在发请求帧 //创建Plc对象Plc plc; //西门子设备是s7-1200//参数1 CPu类型//参…

微信小程序+JAVA实现微信支付

时隔两年再次回归 本文主要讲的是小程序实现微信支付功能,后台采用JAVA。 一.准备工作 1.小程序 2.微信商户号 1.商户号申请 这里对小程序的申请不做赘述。 如果没有微信商户号的同学,点击该链接https://pay.weixin.qq.com/,按照下属步骤…

低代码与人工智能的融合:加速应用开发的未来趋势

什么是低代码,它是如何工作的? 低代码是一种软件开发概念,它通过最小化手工编码的方式,为开发和部署定制化应用提速。低代码平台具备模型驱动、沙盒多环境、可编程的可视化开发方式等,能用于开发包含有用户界面、业务逻…

二叉树——链式结构的实现

首先是分为三个文件进行实现:tree.h、tree.c、test.c tree.h 用链表来表示⼀棵⼆叉树,即用链来指示元素的逻辑关系。通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩⼦和右孩⼦所在…

基于Springboot + vue + mysql 校友社交管理系统 设计实现

目录 📚 前言 📑摘要 1.1 研究背景 📑操作流程 📚 系统架构设计 📚 数据库设计 💬 E-R表 4.2.2数据库逻辑结构设计 📚 系统功能的具体实现 系统功能模块 系统首页 校友会信息 校友活动 …

仿RabbitMQ实现消息队列———整体框架

目录 一、项目简介 需求分析 AMQP 特点: AMQP 模型: 交换机类型 持久化 网络通信 二、服务端模块 1、交换机数据管理 2、队列数据管理 3、绑定数据管理 4、消息数据管理 5、虚拟机数据管理 6、路由匹配管理 7、消费者管理 8、信道管理 …

智源发布三款BGE新模型,再次刷新向量检索最佳水平

近期,以大语言模型(LLM)为基础的向量模型(embedding model)变得愈发流行。得益于大语言模型强大的语义理解能力,相关模型在下游任务中的检索精度得到了显著的提升。然而,当前基于大模型的向量模…

leetcode 1555 银行账号概要(postgresql)

需求 用户表: Users --------------------- | Column Name | Type | --------------------- | user_id | int | | user_name | varchar | | credit | int | --------------------- user_id 是这个表的主键。 表中的每一列包含每一个用户当前的额度信息。 交易表&…

Nginx反向代理实战

使用反向代理代理服务 假设我们有三台服务器提供不同的服务 nginx作为代理服务器 代理服务器: 192.168.101.23 其余三台服务器 服务器1 192.168.101.18 服务器2 192.168.101.87 服务器3 192.168.101.20 代理服务器的nginix配置 server {listen 8085;ser…

【机器学习基础】机器学习概述与实践基础

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈Python机器学习 ⌋ ⌋ ⌋ 机器学习是一门人工智能的分支学科,通过算法和模型让计算机从数据中学习,进行模型训练和优化,做出预测、分类和决策支持。Python成为机器学习的首选语言,…

Docker中使用自定义网络方式实现Redis集群部署与测试流程

场景 Docker中Docker网络-理解Docker0与自定义网络的使用示例: Docker中Docker网络-理解Docker0与自定义网络的使用示例-CSDN博客 参考上面的流程实现自定义网络的实现。 下面记录其应用实例,使用Docker的自定义网络实现redis集群部署。 注&#xf…

IP地址https证书的优势与申请途径

一、IP地址SSL证书的优势 无需域名:对于一些内部系统或者专用设备而言,它们可能不具有域名,但仍需保障通信安全。IP地址SSL证书正好满足这一需求。简化管理:对于拥有大量设备的企业来说,维护每个设备的域名可能是一个…

tomato-靶机渗透

tomato-靶机 一、安装靶机环境 下载双击.ova文件,写文件名路径导入 打开虚拟机用NAT模式 编辑–>虚拟网络编辑器查看IP段 二、信息收集 1.御剑端口扫描查找该虚拟机的IP 访问网站 扫目录 dirb http://192.168.30.130 收集到目录 /server-status /antibot_im…

成为git砖家(9): git checkout <commit> <file> 的含义

文章目录 1. 目的2. 官方文档解释3. Tower 的解释4. References 1. 目的 git checkout 命令承载了非常多的功能&#xff0c; 想要一次全弄懂&#xff0c;不太现实&#xff1b; 这次白鱼带领大家学习 git checkout <file> 的用法。 老规矩&#xff0c;先查看 git checko…

鸿蒙 HarmonyOS NEXT端云一体化开发-云数据库篇

一、概述 云数据库是一款基于对象模型的数据库&#xff0c;采用存储区、对象类型和对象三级结构。 数据模型 存储区 存储区是一个独立的数据存储区域&#xff0c;多个数据存储区之间相互独立&#xff0c;每个存储区拥有完全相同的对象类型定义 --类似于关系型数据库中的da…

如何有效管理众多账号密码:选择适合你的密码管理工具

在如今的数字化时代&#xff0c;我们的生活几乎离不开各种互联网应用和服务。从社交媒体到在线银行&#xff0c;从购物网站到工作平台&#xff0c;每个应用都要求我们注册账号并设置密码。 随着账号数量的不断增加&#xff0c;管理这些密码成为了一个令人头疼的问题。幸运的是…

AMEYA360:上海雷卯电子CAN BUS芯片静电浪涌击穿整改方案

在现代电子系统中&#xff0c;CAN Bus(Controller Area Network Bus&#xff0c;控制器局域网络总线)作为一种常用的通信协议&#xff0c;标准CAN通常指的是CAN 2.0A和CAN 2.0B协议&#xff0c;其最大通讯速率为1Mbps。而高速CAN通常指的是CAN FD(CAN Flexible Data-rate)协议&…

如何磁盘覆写

使用命令提示符写0 命令提示符是Windows系统内置的一个非常实用的工具&#xff0c;可以通过几行短短的命令来完成各种各样的电脑相关操作而无需开启应用程序&#xff0c;所以我们可以通过命令提示符中的format命令来完成硬盘写0任务。 步骤1. 在搜索框中输入cmd并以管理员身份…