Puncte:0

Eroare la încărcarea fișierelor mari (>2 GB) prin reverse proxy nginx în container

drapel za

Rulez o aplicație într-un container docker (https://github.com/filebrowser/filebrowser/) în care încerc să încarc fișiere foarte mari (>2) GB. Containerul expune aplicația pe un port nestandard de pe localhost la care mă conectez printr-un proxy invers (astfel încât să pot rula mai multe aplicații pe o singură mașină). Problema este că atunci când încarc un fișier de peste 2097152 de octeți, se înregistrează erori. Pot vedea că fișierele sunt încărcate complet în nginx și că ajung parțial la aplicația conianerizată, dar apoi se blochează pentru o lungă perioadă de timp la 2097152 de octeți înainte de a eroa, determinând aplicația containerizată să dea o eroare EOF neașteptată. Bănuiesc că este ceva în neregulă cu nginx, deoarece atunci când încarc un fișier direct în aplicația containerizată, funcționează bine. Am încercat să adaug o varietate de directive la configurația nginx și sunt nedumerit. Configurația mea nginx pentru site este:

Server {
    nume_server example.com;
    client_max_body_size 30g;
    dimensiunea_buffer_proxy 1024k;
    proxy_buffers 4 1024k;
    proxy_busy_buffers_size 1024k;
    proxy_max_temp_file_size 10000m;
    proxy_connect_timeout 10000;
    proxy_send_timeout 10000;
    proxy_read_timeout 10000;
    send_timeout 10000;
    client_header_timeout 10000;
    client_body_timeout 10000;
    
    Locație / {
    proxy_pass http://localhost:8088/;
    proxy_http_versiunea 1.1;
    proxy_cache_bypass $http_upgrade;

    proxy_set_header Actualizare $http_upgrade;
    proxy_set_header Conexiune „upgrade”;
    proxy_set_header Gazdă $gazdă;
    proxy_set_header X-Real-IP $adresă_la distanță;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $schema;
    proxy_set_header X-Forwarded-Host $gazdă;
    proxy_set_header X-Forwarded-Port $server_port;

    proxy_connect_timeout 10000s;
    proxy_send_timeout 10000s;
    proxy_read_timeout 10000s;
    }}

Eroarea pe care o primesc în nginx este:

2022/04/14 20:26:56 [eroare] 3286524#3286524: *13184 connect() a eșuat (111: Conexiune refuzată) în timpul conectării la amonte, client: xxx.xxx.xxx.xxx, server: example.com, cerere: „POST /api/resources/Fedora-KDE-Live-x86_64-35-1.2.iso?override=false HTTP/1.1”, în amonte: „http://[::1]:8088/api/resources/ Fedora-KDE-Live-x86_64-35-1.2.iso?override=false", gazdă: "example.com", referitor: "https://example.com/files/" 

Edit: După ce am săpat mult, se pare că soluția a fost eliminarea proxy_buffer_size, proxy_buffers, și proxy_busy_buffer_size si adauga proxy_request_buffer nr; Nu știu de ce funcționează asta, dar da.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.