Memory
從自託管網站下載大文件
抱歉,如果問題很簡單,我是 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 中。作為附加資訊,該網站是用 python+Flask 建構的,伺服器有 12 GB 的 RAM。
我在這個答案(如何阻止 Apache 使我的整個伺服器崩潰?)中看到了這一點,他們建議“為長時間執行的程序減輕 Apache 的負載”,但我不確定如何實現這一點。您可以建議解決此問題的任何解決方案嗎?
非常感謝您提前。
非常感謝您的回饋,能夠圍繞正確的問題提出問題並找到答案對我很有幫助。
事實證明,我們的 nginx 伺服器只是將請求從公共地址轉發到我們伺服器中的本地地址;該應用程序實際上使用了 Tornado 網路伺服器。所以解決的辦法就是直接用nginx來服務靜態文件,非靜態部分只轉發到tornado伺服器。這解決了記憶體問題。
再次感謝您的幫助和忍受我的初學者問題:)