gpt4 book ai didi

django - 使用 nginx 在多台机器和硬盘驱动器上提供静态文件

转载 作者:行者123 更新时间:2023-12-04 17:47:41 26 4
gpt4 key购买 nike

我有一个项目,它将在部署后存储大型媒体内容。项目使用 Python、Django,也通过 Gunicorn 和 Supervisor 运行。

对于静态文件,我将使用 nginx。

我通过以下方式进行的基本设置 this article ,但我有一个问题,如何更动态地存储内容。一开始我有一台机器有 4 个硬盘,每个 2Tb,以后会买更多,还有新机器(目前我只有一个)。

网站位于 site.com , nginx 位于子域 i.site.com并在根目录中有 2 个文件夹:/static用于存储 css、js、svg 等设计元素和/media将存储什么媒体内容。

问题是将 nginx 设置为在每个硬盘驱动器上写入媒体,并且将使用每台机器。

为了速度,我需要将每个新文件写入不同的硬盘驱动器(如旋转/循环),例如我保存 file1 ,它写在 machine1/hdd1 ,然后我保存 file2 ,它写在 machine1/hdd2 ... file4machine1/hdd4 , file5machine2/hdd1 (目前正如我所提到的,我只有一台机器,但将来会更多)。

那么,任何人都有经验或想法我该怎么做?我确定nginx至少可以在多个硬盘上写入,但是如果我需要在多台机器上写入媒体数据,我不确定该怎么做。
如果您还有其他想法,也请提出建议。

您可以在上述文章或关注 this link 中找到 nginx 配置示例.我也在找 nginx upstream module ,但我实际上不确定是否可以使用它进行配置。

最佳答案

更新:以前,我在写答案时没有过多考虑您要解决的实际问题。您在下面的评论提出了一些我以前忽略的有趣问题。我现在已经重写了我的答案。希望这会有所帮助。

在此答案的先前版本中,我提到了负载平衡。但很明显,您的问题更多是关于文件存储而不是管理负载。

您正在寻找的是 分布式文件系统 .分布式文件系统允许您插入许多磁盘,并且可以扩展到多台机器。

DFS 将所有磁盘和机器组合在一起,让您可以像访问单个磁盘一样访问它们。不仅如此,如果您愿意,DFS 软件还可以为您处理文件复制。

我没有使用任何 DFS 的经验,但我读过一些关于 GlusterFS 的文章。 .我听说它很好,但请随意进行研究。

让我试着解释一下 GlusterFS 是如何工作的。看这个图:

                                                                / Disk 1
/ Machine 1 [Gluster Server] |
/ \ Disk 2
/
Nginx -> Gluster Client -> |
\
\ / Disk 1
\ Machine 2 [Gluster Server] |
\ Disk 2

无需过多了解,Gluster 客户端将允许您的 Nginx 服务器从单个目录访问机器 1 和机器 2,例如 /media .里面 /media目录,您可以访问两台机器,就像所有数据都存储在 /media 中一样即使它存储在不同的机器上。

指南和教程:
  • Setting up GlusterFS on Ubuntu - 很好的教程,解释了很多基本的东西。虽然它是为 Ubuntu 12.04 编写的,但我相信您可以根据自己的操作系统版本进行调整。
  • Common DFS architectures explained - 一些 DFS 架构模式,您稍后可能会发现它们很有帮助。
  • 关于django - 使用 nginx 在多台机器和硬盘驱动器上提供静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47728803/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com