从自托管网站下载大文件

从自托管网站下载大文件

抱歉,如果问题很简单,我是 Web 开发和自托管服务器的新手。

我们有一个自托管网站,该网站应该有一个按钮来下载大型 zip 文件(1 GB)。为此,我们在文件中提供了一个简单的解决方案index.html

<form action="path/to/file.zip" style="display: inline;">
    <button type="submit" class="btn btn-light">DOWNLOAD</button>
</form>

这通常很有效。问题是,每当多个访问者尝试同时下载文件时,服务器就会耗尽 RAM,网站就会崩溃。这是因为每次有人点击下载按钮时,整个下载过程中文件似乎都会加载到 RAM 中。当多个访问者点击下载按钮时,文件会多次加载到 RAM 中。作为补充信息,该网站是用 python+Flask 构建的,服务器有 12 GB 的 RAM。

我在这个答案中看到了这一点(如何阻止 Apache 导致我的整个服务器崩溃?) 他们建议“减轻 Apache 长时间运行进程的负担”,但我不确定如何实现。您能提出什么解决方案来解决这个问题吗?

提前非常感谢您。

答案1

非常感谢您的反馈,这对我非常有帮助,让我能够提出正确的问题并找到答案。

事实证明,我们的 nginx 服务器只是将请求从公共地址转发到我们服务器中的本地地址;应用程序实际上使用的是 Tornado Web 服务器。因此,解决方案只是直接使用 nginx 来提供静态文件,而仅将非静态部分转发到 tornado 服务器。这解决了内存问题。

再次感谢您的帮助以及忍受我初学者的问题:)

相关内容