【发布时间】:2018-05-23 13:15:03
【问题描述】:
我有一个项目,它将在部署后存储大型媒体内容。项目使用 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(目前我提到我只有一台机器,但将来会更多)。 p>
那么,任何人都有经验或想法我该怎么做?我确信 nginx 至少可以在多个硬盘上写入,但是如果我需要在多台机器上写入媒体数据,我不确定我该怎么办。 如果您还有其他想法,也请提出建议。
您可以在上述文章中找到 nginx 配置示例,或关注this link。我也在寻找 nginx upstream module,但实际上我不确定是否可以使用它进行配置。
【问题讨论】:
-
你说的是什么媒体?您说的是静态文件,但您似乎在考虑用户上传的文件;是哪个?
-
@DanielRoseman 可能我没有说清楚,但我的意思是两者,将
/static文件存储在我编写的文件(CSS、JS、SVG、图标等)和/media文件的位置由用户上传。虽然静态文件占用空间小,但媒体需要大量空间,一个 HDD 不足以存储所有文件。问题是关于如何在多个驱动器和机器上拆分它们,但要保持 URL 更清晰,而不是像server1234hdd1.site.com这样的东西,因为在我的情况下,拥有专辑和媒体很重要,应该像/media/some/url/1.png, 2.png, 3 一样访问。 png 或其他类型:jpg、gif、mp4 等
标签: django nginx configuration network-programming storage