php - ไม่สามารถอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์ nginx ด้วยการดึงข้อมูล

ฉันมีแอปพลิเคชันที่เขียนด้วย Laravel ซึ่งฉันอัปโหลดและให้บริการไฟล์บางไฟล์ มันทำงานได้ดีจนกระทั่งฉันพยายามอัปโหลดไฟล์ที่มีขนาด 124MB คำขอดึงข้อมูลเพิ่มขึ้น:


ERR_QUIC_PROTOCOL_ERROR.QUIC_IETF_GQUIC_ERROR_MISSING


และเมื่อฉันปิดใช้งานโปรโตคอล QUIC แบบทดลองบน chrome://flags กว่าคำขอดึงข้อมูลจะล้มเหลว ด้วย


TypeError: ไม่สามารถดึงข้อมูล


ไม่มีอะไรใน error.log และตาม access.log คำขอ POST ไม่ \'อย่าส่งไปที่เซิร์ฟเวอร์


เซิร์ฟเวอร์เป็น เวอร์ชัน nginx: nginx/1.18.0 (Ubuntu)


สิ่งที่เกี่ยวข้อง การตั้งค่า php อยู่ด้านล่าง การตั้งค่าเดียวกันนี้ได้รับการกำหนดค่าสำหรับการกำหนดค่า Xampp ในเครื่องของฉัน และการอัปโหลดทำงานได้ดีในเครื่อง


max_execution_time=300
upload_max_filesize = 0
post_max_size = 0

Answer

วิธีแก้ไข:

NGINX มีขีดจำกัดขนาด POST สูงสุด เปลี่ยนเป็น client_max_body_size 256M; หรืออะไรก็ได้ที่คุณต้องการใน server หรือ location config:


location /uploads {
...
client_max_body_size 256M;
}
\ n

อย่าลืมรีสตาร์ทบริการหลังการแก้ไข


Answer

วิธีแก้ไข:

ในที่สุดหลังจากพยายามดึงข้อมูลคำขอเป็นเวลาหลายชั่วโมงก็ส่งคืนคำตอบพร้อมสาเหตุของข้อผิดพลาด ผู้ร้ายกลายเป็น Cloudflare Cloudflare อนุญาตให้อัปโหลดได้สูงสุด 100MB ในแผนฟรี ฉันปิดใช้งานพร็อกซีสำหรับโดเมนย่อย ติดตั้ง certbot สำหรับ ssl และตอนนี้ทุกอย่างก็ใช้งานได้


Source