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