Så matchar du omvända proxy-tidsgränser för stora foto- och videouppladdningar

Eva Wong är Teknisk skribent och den boende fixaren på ZimaSpace. En livslång nörd med en passion för hemma-labb och öppen källkod, hon specialiserar sig på att översätta komplexa tekniska koncept till tillgängliga, praktiska guider. Eva tror att självhosting ska vara roligt, inte skrämmande. Genom sina handledningar ger hon gemenskapen verktyg att avmystifiera hårdvaruinstallationer, från att bygga sin första NAS till att bemästra Docker-containrar.

Ställ in proxy-timeouts utifrån den långsammaste legitima uppladdning du accepterar, med marginal, och se till att applikationen och eventuell uppströmsproxy är minst lika tillåtande. Försök inte lösa varje misslyckad uppladdning genom att välja en obegränsad timeout.

Ett stort foto eller en stor video kan misslyckas trots att samma app fungerar normalt, eftersom förfrågningens innehåll, uppströmsbearbetningen eller svaret överskrider en annan gräns. Samla först in statuskoden, förfluten tid, filstorlek och proxylogg. Dessa observationer skiljer mellan en avvisning på grund av innehållsstorlek, en inaktivitetstimeout, en backend-timeout eller att klienten kopplar från.

Identifiera steget där uppladdningen avslutas

Upprepa med en känd fil och notera om felet uppstår under överföringen, efter att förloppsindikatorn nått 100 procent eller medan servern bearbetar media. Varje fas motsvarar en annan anslutning och timeout.

Ett konsekvent fel vid samma antal byte tyder på en gräns för innehållsstorlek; ett fel efter samma inaktivitetsintervall tyder på en timeout. Ett gatewayfel efter att uppladdningen har slutförts pekar mot väntetiden mellan proxy och applikation eller applikationens egen bearbetningsgräns.

Läs proxyåtkomst- och felloggarna tillsammans med applikationsloggarna. Om klienten stängde anslutningen först hjälper det inte att bara höja proxy-timeouten; kontrollera mobilens bakgrundsbeteende, VPN-stabiliteten och webbläsarens förfrågningsväg.

Mät en välgrundad timeoutbudget

Dela den största accepterade filen med den långsammaste stödda uppströmshastigheten för att uppskatta överföringstiden och lägg sedan till utrymme för TLS, buffring och varierande genomströmning. Använd detta som ett tak för legitimt arbete, inte som ett löfte om att varje långsam anslutning ska hållas öppen för alltid.

Skilj på total varaktighet och inaktivitetsvaraktighet. NGINX dokumenterar till exempel separata timeoutdirektiv för proxy, och vissa mäter intervallet mellan efterföljande åtgärder i stället för hela svarets varaktighet.

Ha risken för överbelastningsattacker i åtanke. Begränsa uppladdningsendpoints med autentisering och hastighetsbegränsningar innan du väsentligt förlänger anslutningarnas livslängd, och exponera inte proxyns administrationsgränssnitt.

Samordna alla lager utan att överkorrigera

Ställ in storleken på förfrågningens innehåll till eller över applikationens högsta stödda gräns. Samordna sedan timeouterna för klientinnehåll, uppströmsanslutning, uppströmsläsning och uppströmssändning utifrån den observerade felstadiet.

Kontrollera om det finns ett yttre CDN, en tunnel, en lastbalanserare eller en andra reverse proxy med en kortare oföränderlig gräns. Den effektiva gränsen är den minsta i kedjan, så en ändring av enbart den inre proxyn kanske inte ger något synligt resultat.

Dokumentera applikationens URL:er och proxyvägar. ZimaSpace-guiden för Immich på en nätverksresurs hjälper till att skilja fel i uppladdningsvägen från latens och avbrott i lagringsmonteringen.

-15% OFF
Single board computer zimaboard2

Testa långsamma, stora och avbrutna uppladdningar igen

Ladda upp den ursprungliga felande filen från den ursprungliga platsen och med samma nätverkshastighet. Ett godkänt test kräver slutförande, indexering i applikationen och en spelbar eller visningsbar resurs - inte bara en lyckad HTTP-statuskod.

Stryp en testanslutning till den lägsta stödda hastigheten och upprepa. Avbryt sedan en uppladdning medvetet; tillfälliga filer och ofullständiga databasposter ska rensas enligt applikationens beteende.

Sluta höja timeoutvärdena när loggarna visar en backendkrasch, ett lagringsfel eller en fast gräns hos den yttre leverantören. Återställ överdrivna värden, åtgärda det felande lagret och behåll den minsta timeout som konsekvent täcker den uppmätta arbetsbelastningen.

Vanliga frågor

Ska alla proxy-timeouts använda samma värde? Nej. Etablering av anslutning, läsning av klientinnehåll, väntan på uppströmssvar och sändning nedströms skyddar olika faser.

Varför fungerar ett litet foto medan en video misslyckas? Videon kan överskrida en gräns för innehållsstorlek, ta längre tid än en inaktivitetsgräns eller utlösa längre bearbetning på serversidan; loggar och tidpunkten för felet visar vilken.

Support och tips

Mer att läsa

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.