当前位置: 首页 > news >正文

多台服务器文件共享存储

场景:这里以大文件上传为假设场景。大文件上传时,前端会将一个文件进行切片,然后将每个切片进行上传,这个时候会出现一个问题。如果后端有多台机器,那么文件就会上传到不同的机器上面。到最终文件上传完毕后,后端合并文件切片的时候,由于文件切片分散到了不同的机器上时,就会造成合并困难

✅ 目标

让多台后端服务器都能访问同一个文件目录,
不管前端上传到哪台机器,文件都能存放在同一地方。


🧱 实现思路

1️⃣ 选择一台服务器作为“文件中心”

假设有三台机器:

serverA(应用)
serverB(应用)
serverC(存储)

其中 serverC 专门用来存储所有上传的文件(你也可以选任意一台机器充当这个角色)。


2️⃣ 在 serverC 上创建共享目录

比如:

mkdir -p /data/uploads

然后安装 NFS 服务:

sudo apt install nfs-kernel-server

编辑配置文件 /etc/exports

/data/uploads 192.168.1.0/24(rw,sync,no_subtree_check)

允许局域网内其他机器访问 /data/uploads

重新加载 NFS 配置:

exportfs -ra

3️⃣ 在其他机器(serverA、serverB)上挂载这个共享目录

sudo apt install nfs-common
sudo mount -t nfs 192.168.1.30:/data/uploads /mnt/uploads

(假设 serverC 的 IP 是 192.168.1.30)

这样,/mnt/uploads 实际上指向 serverC 上的 /data/uploads


4️⃣ 修改你的上传路径

无论是 A 还是 B:

  • 上传的文件路径统一写到 /mnt/uploads/<fileHash>/<chunkIndex>
  • 合并时直接在该路径下进行;
  • 不需要关心是哪台机器接收了分片。

5️⃣ (可选)设置开机自动挂载

编辑 /etc/fstab

192.168.1.30:/data/uploads /mnt/uploads nfs defaults 0 0

✅ 优点

  • 🚀 简单、稳定;
  • 💾 各服务器共享一份真实文件;
  • 🔄 合并逻辑无需改动;
  • 🔧 不用改前端;
  • 🔐 可用权限控制和 quota 管理;

⚠️ 注意事项

项目

建议

⚙️ 性能

NFS 的写入速度比本地盘略慢,但对大文件上传影响不大(一般瓶颈在网络上)。

🔒 权限

保证 NFS 目录对应用服务进程有写权限。

🔄 同步问题

NFS 是实时共享的,不需要你手动同步。

🧹 清理

上传临时文件可以设置 cron 定期清理旧文件。


💡 实战例子

假设你后端保存上传文件的代码是这样的:

const savePath = `/mnt/uploads/${fileHash}`;
fs.mkdirSync(savePath, { recursive: true });
fs.writeFileSync(`${savePath}/${chunkIndex}`, chunkBuffer);

那无论这个接口在哪台服务器上被调用,
文件最终都会写入同一个共享目录中 👍。


✅ 总结一句话

“通过挂载虚拟目录(NFS/SMB/GlusterFS)让所有应用服务器共享同一个文件存储路径,这样大文件分片上传时,无论落到哪台机器,最后都能在同一地方被合并。”

http://www.dtcms.com/a/465495.html

相关文章:

  • 中远智达网站建设项目管理软件开源
  • 购物网站开发教学视频鸿扬家装网站建设
  • 随机森林所有参数含义以及如何进行采样和网格搜索;
  • Pinna与Vuex之间的相同点与不同点
  • 多模态医疗大模型Python编程合规前置化与智能体持续学习研究(中)
  • 缠中说禅技术分析工具czsc(一)
  • Windows安装Redis保姆级教程
  • 2025瑞芯微开发者大会万象奥科展出RK3506邮票孔核心板
  • 公司网站是怎么做的logo设计网页
  • 旅游攻略网站开发背景苏州网站制作电话
  • Room持久化库中,@Transaction注解的正确使用场景是?
  • Oracle实用参考(13)——Oracle for Linux (RAC)到Oracle for Linux(单实例)间OGG单向复制环境搭建(1)
  • Oracle中的ROUND函数
  • 上位机 OCR 通讯实战
  • Google 智能体设计模式:知识检索(RAG)
  • 山西网站建设找哪家商丘做网站公司新站seo快速收录网页内容页的方法
  • 健身网站的建设方案充电宝关键词优化
  • LOTVACUUM HDSeries 系列HD550系列真空泵韩国Manual
  • 视觉新范式:ResNet+Transformer双路径融合,顶刊解析遥感分割与动作识别新SOTA
  • 网站备案怎么转入常州网站建设书生商友
  • Neo4j图数据库上手指南
  • 计算机基础知识 | 计网 | 状态检测防火墙(Stateful Firewall)
  • 给公司做网站销售怎样啦中国建设银行演示网站
  • RSA加密从原理到实践:Java后端与Vue前端全栈案例解析
  • [VoiceRAG] 前端实时通信 | useRealTime钩子
  • Typora 配置 PicGo 使用 Gitee 图床实现图片自动上传(Mac 详细教程)
  • 安装elk
  • RNN-seq2seq 英译法案例
  • 房地产 网站 案例电商网站建设与运营方向
  • 2025年企微SCRM工具核心功能深度测评:微盛AI·企微管家领跑赛道