Score:2

ดาวน์โหลดไฟล์ขนาดใหญ่จากเว็บไซต์ที่โฮสต์เอง

ธง cn

ขออภัยหากคำถามนั้นง่าย ฉันยังใหม่กับการพัฒนาเว็บและเซิร์ฟเวอร์ที่โฮสต์เอง

เรามีเว็บไซต์ที่โฮสต์เอง ซึ่งควรจะมีปุ่มสำหรับดาวน์โหลดไฟล์ 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 และเซิร์ฟเวอร์มี RAM ขนาด 12 GB

ฉันได้เห็นสิ่งนั้นในคำตอบนี้ (จะหยุด Apache ไม่ให้ล่มทั้งเซิร์ฟเวอร์ได้อย่างไร) พวกเขาแนะนำให้ "ถอด Apache ออกสำหรับกระบวนการที่ใช้เวลานาน" แต่ฉันไม่แน่ใจว่าจะทำได้อย่างไร มีวิธีแก้ไขใด ๆ ที่คุณสามารถแนะนำเพื่อแก้ปัญหานี้ได้หรือไม่?

ขอบคุณล่วงหน้า.

vn flag
ลองโฮสต์ไฟล์นอกเซิร์ฟเวอร์ เช่น Amazon S3
br flag
ฟังดูไม่ถูกต้องเลย - คุณกำลังใช้เครื่องมือเว็บเซิร์ฟเวอร์อะไรอยู่
djdomi avatar
za flag
แม้แต่ไฟล์ไฟล์จะมีมากกว่า 50GB ก็ควรสตรีมแทนการเปิด
vn flag
@ Chopper3 ฉันขอเดิมพันว่าคำขอนั้นผ่านตัวควบคุมด้านหน้าของแอปแทนที่จะส่งตรงไปยังเว็บเซิร์ฟเวอร์
eugenio_chisari avatar
cn flag
@Chopper3 เราใช้ Nginx @ djdomi คุณช่วยชี้ให้ฉันดูแหล่งข้อมูลที่อธิบายวิธีการทำได้ไหม ขอบคุณทุกคน.
djdomi avatar
za flag
@eugenio_chisati หากคุณใช้ระนาบ nginx โพสต์ nginx conf นี่ไม่ใช่พฤติกรรมปกติสำหรับ nginx คุณสามารถลองใช้ `directio 50m` เพื่อยืนยันว่าคุณยังทำงานอยู่หรือไม่
eugenio_chisari avatar
cn flag
สวัสดีทุกคน ขอบคุณมากสำหรับความคิดเห็นของคุณ มันมีประโยชน์มากสำหรับฉันที่สามารถถามคำถามที่ถูกต้องและหาคำตอบได้ ปรากฎว่าเซิร์ฟเวอร์ nginx ของเราเพียงแค่ส่งต่อคำขอจากที่อยู่สาธารณะไปยังที่อยู่ในท้องถิ่นในเซิร์ฟเวอร์ของเรา แอปนั้นใช้เว็บเซิร์ฟเวอร์ทอร์นาโดจริงๆ ดังนั้นวิธีแก้ปัญหาคือใช้ nginx โดยตรงเพื่อให้บริการไฟล์สแตติก และส่งต่อไปยังเซิร์ฟเวอร์ทอร์นาโดสำหรับส่วนที่ไม่คงที่เท่านั้น สิ่งนี้ช่วยแก้ปัญหาหน่วยความจำ ขอขอบคุณอีกครั้งสำหรับความช่วยเหลือและการตอบคำถามสำหรับผู้เริ่มต้นของฉัน :)
Score:1
ธง cn

ขอบคุณมากสำหรับคำติชมของคุณ มันมีประโยชน์มากสำหรับฉันที่สามารถถามคำถามที่ถูกต้องและหาคำตอบได้

ปรากฎว่าเซิร์ฟเวอร์ nginx ของเราเพียงแค่ส่งต่อคำขอจากที่อยู่สาธารณะไปยังที่อยู่ในท้องถิ่นในเซิร์ฟเวอร์ของเรา แอปนั้นใช้เว็บเซิร์ฟเวอร์ทอร์นาโดจริงๆ ดังนั้นวิธีแก้ปัญหาคือใช้ nginx โดยตรงเพื่อให้บริการไฟล์สแตติก และส่งต่อไปยังเซิร์ฟเวอร์ทอร์นาโดสำหรับส่วนที่ไม่คงที่เท่านั้น สิ่งนี้ช่วยแก้ปัญหาหน่วยความจำ

ขอขอบคุณอีกครั้งสำหรับความช่วยเหลือและการตอบคำถามสำหรับผู้เริ่มต้นของฉัน :)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา