ฉันกำลังเรียกใช้แอปพลิเคชันในคอนเทนเนอร์นักเทียบท่า (https://github.com/filebrowser/filebrowser/) ที่ฉันพยายามอัปโหลดไฟล์ขนาดใหญ่มาก (>2) gb ไป คอนเทนเนอร์เปิดเผยแอปบนพอร์ตที่ไม่ได้มาตรฐานบน localhost ซึ่งฉันเชื่อมต่อผ่าน reverse proxy (ดังนั้นฉันจึงสามารถเรียกใช้หลายแอปในเครื่องเดียว) ปัญหาคือเมื่อฉันอัปโหลดไฟล์เกิน 2097152 ไบต์ มันเกิดข้อผิดพลาด ฉันเห็นว่าไฟล์ได้รับการอัปโหลดอย่างสมบูรณ์ไปยัง nginx และบางส่วนทำให้แอป contianerized แต่หยุดทำงานเป็นเวลานานที่ 2097152 ไบต์ก่อนที่จะเกิดข้อผิดพลาดทำให้แอปคอนเทนเนอร์แสดงข้อผิดพลาด EOF ที่ไม่คาดคิด ฉันสงสัยว่ามีบางอย่างผิดปกติกับ nginx เพราะเมื่อฉันอัปโหลดไฟล์ไปยังแอปคอนเทนเนอร์โดยตรง มันใช้งานได้ดี ฉันได้ลองเพิ่มคำสั่งต่าง ๆ ให้กับการกำหนดค่า nginx และฉันก็นิ่งงัน การกำหนดค่า nginx ของฉันสำหรับไซต์คือ:
เซิร์ฟเวอร์ {
server_name example.com;
client_max_body_size 30g;
proxy_buffer_size 1024k;
proxy_buffers 4 1024k;
proxy_busy_buffers_size 1024k;
proxy_max_temp_file_size 10,000m;
proxy_connect_timeout 10,000;
proxy_send_timeout 10,000;
proxy_read_timeout 10,000;
send_timeout 10,000;
client_header_timeout 10,000;
client_body_timeout 10,000;
ที่ตั้ง / {
proxy_pass http://localhost:8088/;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_set_header อัพเกรด $http_upgrade;
proxy_set_header การเชื่อมต่อ "อัพเกรด";
proxy_set_header โฮสต์ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_connect_timeout 10,000 วินาที;
proxy_send_timeout 10,000 วินาที;
proxy_read_timeout 10,000 วินาที;
}}
ข้อผิดพลาดที่ฉันได้รับใน nginx คือ:
2022/04/14 20:26:56 [ข้อผิดพลาด] 3286524#3286524: *13184 การเชื่อมต่อ() ล้มเหลว (111: การเชื่อมต่อถูกปฏิเสธ) ขณะเชื่อมต่อกับอัปสตรีม ไคลเอนต์: xxx.xxx.xxx.xxx เซิร์ฟเวอร์: example.com คำขอ: "POST /api/resources/Fedora-KDE-Live-x86_64-35-1.2.iso?override=false HTTP/1.1", อัปสตรีม: "http://[::1]:8088/api/resources/ Fedora-KDE-Live-x86_64-35-1.2.iso?override=false", โฮสต์: "example.com", ผู้อ้างอิง: "https://example.com/files/"
แก้ไข: หลังจากทำการขุดจำนวนมากดูเหมือนว่าวิธีแก้ปัญหาคือการลบ proxy_buffer_size
, proxy_buffers
, และ proxy_busy_buffer_size
และเพิ่ม proxy_request_buffer ไม่;
ฉันไม่รู้ว่าทำไมมันถึงใช้งานได้ แต่มันได้ผล