Điểm:2

Tải xuống tệp lớn từ trang web tự lưu trữ

lá cờ cn

Xin lỗi nếu câu hỏi đơn giản, tôi chưa quen với việc phát triển web và máy chủ tự lưu trữ.

Chúng tôi có một trang web tự lưu trữ, được cho là có một nút để tải xuống tệp zip lớn (1 GB). Đối với điều này, chúng tôi có một giải pháp đơn giản trong index.html tập tin:

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

Điều này thường làm việc tốt. Vấn đề là, bất cứ khi nào nhiều khách truy cập cố tải xuống tệp cùng một lúc, máy chủ sẽ hết RAM và trang web bị treo. Điều này là do mỗi khi ai đó nhấp vào nút tải xuống, tệp dường như được tải trên RAM trong toàn bộ quá trình tải xuống. Khi nhiều khách truy cập nhấp vào nút Tải xuống, tệp sẽ được tải trên RAM nhiều lần. Như thông tin bổ sung, trang web được xây dựng bằng python+Flask và máy chủ có 12 GB RAM.

Tôi đã thấy điều đó trong câu trả lời này (Làm cách nào để ngăn Apache làm sập toàn bộ máy chủ của tôi?) họ đề xuất "tắt tải Apache cho các quy trình chạy lâu", nhưng tôi không chắc làm thế nào để đạt được điều đó. Có giải pháp nào bạn có thể đề xuất để giải quyết vấn đề này không?

Cảm ơn bạn rất nhiều trước.

lá cờ vn
Cân nhắc lưu trữ tệp ở đâu đó bên ngoài máy chủ, chẳng hạn như Amazon S3.
lá cờ br
Điều đó nghe có vẻ không đúng chút nào - bạn đang sử dụng công cụ máy chủ web thực sự nào?
djdomi avatar
lá cờ za
thậm chí tệp tệp sẽ có hơn 50gb hoặc nhiều hơn, nó sẽ phát trực tuyến thay vì mở
lá cờ vn
@ Chopper3 Tôi cá là các yêu cầu sẽ đi qua bộ điều khiển phía trước của ứng dụng thay vì trực tiếp đến máy chủ web.
eugenio_chisari avatar
lá cờ cn
@Chopper3 chúng tôi sử dụng Nginx. @ djdomi bạn có thể chỉ cho tôi một số tài nguyên giải thích cách thực hiện điều đó không? Cảm ơn tất cả.
djdomi avatar
lá cờ za
@eugenio_chisati nếu bạn sử dụng máy bay nginx, hãy đăng nginx conf, đây không phải là hành vi bình thường đối với nginx, bạn có thể thử sử dụng `directio 50m` để xác minh xem bạn có còn chạy không
eugenio_chisari avatar
lá cờ cn
Xin chào tất cả mọi người, cảm ơn rất nhiều vì phản hồi của bạn, điều này rất hữu ích đối với tôi khi có thể hỏi những câu hỏi phù hợp và tìm câu trả lời. Hóa ra, máy chủ nginx của chúng tôi chỉ đơn giản là chuyển tiếp các yêu cầu từ địa chỉ công cộng đến địa chỉ cục bộ trong máy chủ của chúng tôi; ứng dụng sau đó thực sự sử dụng máy chủ web Tornado. Vì vậy, giải pháp đơn giản là sử dụng nginx trực tiếp để phục vụ các tệp tĩnh và chỉ chuyển tiếp đến máy chủ lốc xoáy cho phần không tĩnh. Điều này giải quyết vấn đề bộ nhớ. Cảm ơn bạn một lần nữa vì sự giúp đỡ và đưa ra những câu hỏi mới bắt đầu của tôi :)
Điểm:1
lá cờ cn

cảm ơn bạn rất nhiều vì phản hồi của bạn, điều đó rất hữu ích đối với tôi khi có thể hỏi những câu hỏi phù hợp và tìm câu trả lời.

Hóa ra, máy chủ nginx của chúng tôi chỉ đơn giản là chuyển tiếp các yêu cầu từ địa chỉ công cộng đến địa chỉ cục bộ trong máy chủ của chúng tôi; ứng dụng sau đó thực sự sử dụng máy chủ web Tornado. Vì vậy, giải pháp đơn giản là sử dụng nginx trực tiếp để phục vụ các tệp tĩnh và chỉ chuyển tiếp đến máy chủ lốc xoáy cho phần không tĩnh. Điều này giải quyết vấn đề bộ nhớ.

Cảm ơn bạn một lần nữa vì sự giúp đỡ và đưa ra những câu hỏi mới bắt đầu của tôi :)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.