ค่าเริ่มต้น nginx client_max_body_size


94

ฉันได้รับข้อผิดพลาด nginx:

413 Request Entity Too Large

ฉันสามารถอัปเดตclient_max_body_sizeในส่วนเซิร์ฟเวอร์ของไฟล์ nginx.conf ของฉันเป็น 20M และสิ่งนี้ได้แก้ไขปัญหาแล้ว อย่างไรก็ตาม nginx เริ่มต้นclient_max_body_sizeคืออะไร?

คำตอบ:


137

ค่าเริ่มต้นสำหรับclient_max_body_sizeสั่งเป็น1 เอ็มไอ

มันสามารถตั้งค่าในhttp, serverและlocationบริบท - เช่นเดียวกับในกรณีส่วนใหญ่นี้สั่งในบล็อกซ้อนกันจะเหนือกว่าคำสั่งเดียวกันในบล็อกบรรพบุรุษ

ตัดตอนมาจากเอกสาร ngx_http_core_module :

Syntax:   client_max_body_size size;
Default:  client_max_body_size 1m;
Context:  http, server, location

ตั้งค่าขนาดสูงสุดที่อนุญาตของเนื้อหาคำขอไคลเอ็นต์ซึ่งระบุในฟิลด์ส่วนหัวของคำขอ "ความยาวเนื้อหา" หากขนาดในคำขอเกินค่าที่กำหนดไว้ข้อผิดพลาด 413 (Request Entity Too Large) จะถูกส่งกลับไปยังไคลเอนต์ โปรดทราบว่าเบราว์เซอร์ไม่สามารถแสดงข้อผิดพลาดนี้ได้อย่างถูกต้อง การตั้งค่าขนาดเป็น 0 ปิดใช้งานการตรวจสอบขนาดเนื้อหาคำขอไคลเอ็นต์

อย่าลืมโหลดการกำหนดค่าใหม่ โดยnginx -s reloadหรือservice nginx reloadคำสั่งที่เติมด้วยsudo(ถ้ามี)


2
มาช้าโปรดทราบว่าคุณควรใช้nginx -tเพื่อทดสอบการกำหนดค่าของคุณก่อนที่จะเรียกใช้nginx -s reloadเพื่อใช้การเปลี่ยนแปลงการกำหนดค่า ไม่สามารถรับประกันได้ว่าการกำหนดค่าของคุณถูกต้อง แต่จะตรวจพบข้อผิดพลาดทางไวยากรณ์หรือค่าที่ไม่ถูกต้อง
kungphu

2
ใช่ แต่ไม่ว่าในกรณีใดnginx -s reloadจะไม่ใช้การกำหนดค่าที่ไม่ถูกต้องทางไวยากรณ์ แต่จะรายงานข้อผิดพลาด
ruvim

อะไรคือสิ่งที่สูงสุดค่าที่ Nginx สนับสนุนสำหรับคำสั่งนี้หรือไม่? ไม่มีอะไรในเอกสาร Apache สนับสนุน 2GB สูงสุด
Dan Dascalescu

@DanDascalescu ค่าสูงสุดขึ้นอยู่กับoff_tขนาดประเภท (ดูngx_http_core_module.h) ในกรณีของoff_tขนาดปฏิบัติการ64 บิตคือ 64 บิตและค่าสูงสุดควรเป็น 2 ^ 63 ไบต์
ruvim

19

คำตอบของ Pooja Mane ใช้ได้ผลสำหรับฉัน แต่ฉันต้องใส่ตัวแปรclient_max_body_sizeไว้ในส่วนhttp

ป้อนคำอธิบายภาพที่นี่


1
ฉันรักมันเมื่อมีคนใส่ข้อมูลโค้ดคุณคือฮีโร่
Charden Daxicen

14

คุณสามารถเพิ่มขนาดร่างกายในไฟล์กำหนดค่า nginx เป็นไฟล์

sudo nano /etc/nginx/nginx.conf

client_max_body_size 100M;

รีสตาร์ท nginx เพื่อใช้การเปลี่ยนแปลง

sudo service nginx รีสตาร์ท


10
ทำไมต้อง 100M? ทำไมไม่ 100G? คำตอบของคุณจะดีขึ้นหากคุณเพิ่มเหตุผล
Hassan Baig

10
ใช่ 42M จะดีกว่า
Evgeni Nabokov

2
ตั้งค่าเป็น 0 สำหรับ unlimit
morteza moradi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.