ค้นหาเว็บไซต์

วิธีจำกัดขนาดการอัพโหลดไฟล์ใน Nginx


ในบทความล่าสุดของเรา เราได้อธิบายเกี่ยวกับการจำกัดขนาดการอัพโหลดไฟล์ของผู้ใช้ใน Apache ในบทความนี้ เราจะอธิบายวิธีจำกัดขนาดการอัปโหลดไฟล์ของผู้ใช้ใน Nginx การจำกัดขนาดอัพโหลดไฟล์มีประโยชน์ในการป้องกันการโจมตีแบบปฏิเสธการให้บริการ (DOS) บางประเภทและปัญหาอื่นๆ ที่เกี่ยวข้องอีกมากมาย

ตามค่าเริ่มต้น Nginx มีการจำกัดการอัปโหลดไฟล์ไว้ที่ 1MB หากต้องการตั้งค่าขนาดการอัปโหลดไฟล์ คุณสามารถใช้คำสั่ง client_max_body_size ซึ่งเป็นส่วนหนึ่งของโมดูล ngx_http_core_module ของ Nginx คำสั่งนี้สามารถตั้งค่าได้ในบริบท http, เซิร์ฟเวอร์ หรือ ตำแหน่ง

โดยจะกำหนดขนาดสูงสุดที่อนุญาตของเนื้อหาคำขอของไคลเอ็นต์ ซึ่งระบุในช่องส่วนหัวคำขอ “ความยาวเนื้อหา” ต่อไปนี้คือตัวอย่างการเพิ่มขีดจำกัดเป็น 100MB ในไฟล์ /etc/nginx/nginx.conf

ตั้งอยู่ใน บล็อก http ซึ่งส่งผลต่อบล็อกเซิร์ฟเวอร์ทั้งหมด (โฮสต์เสมือน)

http {
    ...
    client_max_body_size 100M;
}    

ตั้งอยู่ในบล็อกเซิร์ฟเวอร์ ซึ่งส่งผลต่อไซต์/แอปเฉพาะ

server {
    ...
    client_max_body_size 100M;
}

ตั้งอยู่ในบล็อกตำแหน่ง ซึ่งส่งผลต่อไดเร็กทอรีเฉพาะ (การอัปโหลด) ใต้ไซต์/แอป

location /uploads {
    ...
    client_max_body_size 100M;
} 

บันทึกไฟล์และรีสตาร์ทเว็บเซิร์ฟเวอร์ Nginx เพื่อใช้การเปลี่ยนแปลงล่าสุดโดยใช้คำสั่งต่อไปนี้

systemctl restart nginx       #systemd
service nginx restart         #sysvinit

เมื่อคุณบันทึกการเปลี่ยนแปลงและรีสตาร์ทเซิร์ฟเวอร์ HTTP แล้ว หากขนาดในคำขอเกินค่าที่กำหนดไว้ที่ 100MB ข้อผิดพลาด 413 (เอนทิตีคำขอใหญ่เกินไป) จะถูกส่งกลับ ให้กับลูกค้า

หมายเหตุ: คุณควรจำไว้ว่าบางครั้งเบราว์เซอร์อาจแสดงข้อผิดพลาดนี้ไม่ถูกต้อง และการตั้งค่า (ขนาด) เป็น 0 จะปิดใช้งานการตรวจสอบขนาดเนื้อหาคำขอของไคลเอ็นต์

คุณอาจต้องการอ่านบทความต่อไปนี้ที่เกี่ยวข้องกับการดูแลเว็บเซิร์ฟเวอร์ Nginx

  1. วิธีการเปลี่ยนพอร์ต Nginx ใน Linux
  2. วิธีซ่อนเวอร์ชันเซิร์ฟเวอร์ Nginx ใน Linux
  3. ngxtop – ตรวจสอบไฟล์บันทึก Nginx แบบเรียลไทม์ใน Linux
  4. วิธีตรวจสอบประสิทธิภาพ Nginx โดยใช้ Netdata
  5. วิธีเปิดใช้งานหน้าสถานะ NGINX

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