Legen Sie Proxy-Timeouts anhand des langsamsten legitimen Uploads fest, den Sie akzeptieren, und planen Sie einen Puffer ein. Anwendung und vorgelagerter Proxy sollten mindestens ebenso großzügig konfiguriert sein. Beheben Sie nicht jeden fehlgeschlagenen Upload, indem Sie ein unbegrenztes Timeout wählen.
Ein großes Foto oder Video kann fehlschlagen, während dieselbe App ansonsten normal funktioniert, weil der Request-Body, die vorgelagerte Verarbeitung oder die Antwort ein anderes Limit überschreitet. Erfassen Sie zunächst den Statuscode, die verstrichene Zeit, die Dateigröße und das Proxy-Log. Diese Beobachtungen unterscheiden eine Ablehnung aufgrund der Body-Größe von einem Idle-Timeout, einem Backend-Timeout oder einem Verbindungsabbruch durch den Client.
Ermitteln Sie die Phase, in der der Upload endet
Wiederholen Sie den Vorgang mit einer bekannten Datei und achten Sie darauf, ob der Fehler während der Übertragung, nachdem der Fortschrittsbalken 100 Prozent erreicht hat, oder während der Medienverarbeitung durch den Server auftritt. Jede Phase entspricht einer anderen Verbindung und einem anderen Timeout.
Ein konsistenter Fehler bei derselben Byte-Anzahl deutet auf ein Limit für die Body-Größe hin; ein Fehler nach demselben Leerlaufintervall deutet auf ein Timeout hin. Ein Gateway-Fehler nach Abschluss des Uploads weist auf die Wartezeit zwischen Proxy und Anwendung oder auf das eigene Verarbeitungslimit der Anwendung hin.
Lesen Sie die Zugriffs- und Fehlerprotokolle des Proxys gemeinsam mit den Anwendungsprotokollen. Wenn der Client die Verbindung zuerst geschlossen hat, hilft es nicht, nur das Proxy-Timeout zu erhöhen. Überprüfen Sie das Verhalten mobiler Apps im Hintergrund, die VPN-Stabilität und den Anfragepfad des Browsers.
Ermitteln Sie ein begründbares Timeout-Budget
Teilen Sie die größte akzeptierte Datei durch die langsamste unterstützte Upload-Geschwindigkeit, um die Übertragungszeit zu schätzen, und rechnen Sie zusätzlichen Spielraum für TLS, Pufferung und schwankenden Durchsatz ein. Verwenden Sie diesen Wert als Obergrenze für legitime Vorgänge, nicht als Versprechen, dass jede langsame Verbindung unbegrenzt offen bleiben sollte.
Unterscheiden Sie zwischen Gesamtdauer und Leerlaufdauer. Beispielsweise dokumentiert NGINX separate Proxy-Timeout-Direktiven, und einige messen den Abstand zwischen aufeinanderfolgenden Vorgängen statt der Dauer der gesamten Antwort.
Behalten Sie das Risiko von Denial-of-Service-Angriffen im Blick. Beschränken Sie Upload-Endpunkte durch Authentifizierung und Ratenbegrenzungen, bevor Sie die Verbindungsdauer wesentlich verlängern, und machen Sie die Administrationsoberfläche des Proxys nicht öffentlich zugänglich.
Stimmen Sie jede Ebene ab, ohne zu übersteuern
Setzen Sie die Größe des Request-Bodys auf den unterstützten Maximalwert der Anwendung oder darüber. Stimmen Sie anschließend Client-Body-, Upstream-Connect-, Upstream-Read- und Upstream-Send-Timeouts entsprechend der beobachteten Fehlerphase ab.
Prüfen Sie, ob ein vorgeschaltetes CDN, ein Tunnel, ein Load Balancer oder ein zweiter Reverse-Proxy ein kürzeres, unveränderliches Limit hat. Das effektive Limit ist das kleinste in der Kette, daher kann eine Änderung ausschließlich am internen Proxy ohne sichtbares Ergebnis bleiben.
Dokumentieren Sie Anwendungs-URLs und Proxy-Routen. Der ZimaSpace-Leitfaden zu Immich auf einer Netzwerkfreigabe hilft dabei, Fehler im Upload-Pfad von Latenzen und Ausfällen beim Einbinden des Speichers zu unterscheiden.
Testen Sie langsame, große und unterbrochene Uploads erneut
Laden Sie die ursprünglich fehlschlagende Datei am ursprünglichen Standort und mit derselben Netzwerkgeschwindigkeit hoch. Als erfolgreich gilt der Vorgang erst, wenn der Upload abgeschlossen, die Datei von der Anwendung indiziert und das Asset abspielbar oder anzeigbar ist – nicht bereits bei einem HTTP-Erfolgscode.
Drosseln Sie eine Testverbindung auf die minimal unterstützte Geschwindigkeit und wiederholen Sie den Vorgang. Unterbrechen Sie anschließend absichtlich einen Upload. Temporäre Dateien und unvollständige Datenbankeinträge sollten entsprechend dem Verhalten der Anwendung bereinigt werden.
Erhöhen Sie Timeouts nicht weiter, wenn die Protokolle einen Backend-Absturz, einen Speicherfehler oder ein festes Limit des vorgeschalteten Anbieters zeigen. Setzen Sie überhöhte Werte zurück, beheben Sie die fehlerhafte Ebene und behalten Sie das kleinste Timeout bei, das die gemessene Arbeitslast zuverlässig abdeckt.
FAQ
Sollten alle Proxy-Timeouts denselben Wert verwenden? Nein. Verbindungsaufbau, das Lesen des Client-Bodys, das Warten auf die Upstream-Antwort und das Senden an den Client schützen unterschiedliche Phasen.
Warum funktioniert ein kleines Foto, während ein Video fehlschlägt? Das Video überschreitet möglicherweise einen Schwellenwert für die Body-Größe, dauert länger als ein Idle-Limit oder löst eine längere serverseitige Verarbeitung aus. Protokolle und der Zeitpunkt des Fehlers zeigen, welcher Fall vorliegt.
Support & Tipps
Mehr zum Lesen

Kann eine selbstgehostete Galerie die Zuordnung von Apple-Live-Photo-Paaren beibehalten?
Eine bedingte Entscheidung für den Heimserver zur Kopplung von Apple Live Photos mit kontrollierten Tests, Ergebnisinterpretation, Rollback und gezielten FAQs.

Können Sie Google Takeout und Telefonsicherungen in eine gemeinsame Fotobibliothek importieren?
Eine bedingte Home-Server-Entscheidung für den kombinierten Fotoimport mit kontrollierten Tests, Ergebnisinterpretation, Rollback und gezielten FAQs.

Kann Immich eine externe Bibliothek verwenden, ohne die Kontrolle über die Dateien zu übernehmen?
Eine bedingte Entscheidung für den Besitz externer Bibliotheken auf einem Heimserver mit Immich, einschließlich kontrollierter Tests, Ergebnisinterpretation, Rollback und gezielter FAQs.

