多个服务器文件上的Nodejs

时间:2017-02-01 17:59:01

标签: node.js

我有3台服务器在运行nodejs,第4台服务器用于ngninx负载均衡器(反向代理)和前端代码。一切都很完美,但我想管理文件上传。我如何在这种基础设施下管理这个?

例如:如果这3个nodejs服务器中的一个上传文件在同一台服务器上,我该如何访问该文件?

nodejs服务器位于example.com/api链接下,但由于反向代理请求转到一台服务器,我不知道哪个服务器是特定文件。

我应该将文件上传到所有nodejs服务器吗?

1 个答案:

答案 0 :(得分:1)

如果您有三个独立的node.js服务器,它们在物理上位于具有自己存储的不同服务器上,那么共享文件访问权限的通常方法是拥有一个共享存储,三个服务器都可以访问,然后是任何节点。 js服务器上传文件,它将数据放在共享存储上,每个人都可以访问它。

如果您的三个独立的node.js服务器只是同一个盒子上的单独进程,那么它们都可以访问相同的磁盘存储。

当从单独的进程或服务器共享存储时,您必须确保文件管理代码是并发安全的 - 在编写时正确的文件锁定,用于生成唯一文件名的并发安全机制,安全缓存等。

或者,您可以将数据库服务器用于所有node.js服务器都可以访问的存储,但如果您只是存储数据文件并且没有与您相关的大量元数据,那么想要查询和共享文件系统访问是你真正需要的,那么数据库可能不是存储数据的最有效方法。

  

我应该将文件上传到所有nodejs服务器吗?

通常不会因为那样效率不高。通常,您需要将一次上载到所有服务器都可以访问的共享存储位置或服务器或数据库。