Ustawiaj limity czasu proxy na podstawie najwolniejszego uzasadnionego przesyłania, które akceptujesz, dodając margines, i zadbaj o to, aby aplikacja oraz każdy nadrzędny serwer proxy były co najmniej tak liberalne. Nie rozwiązuj każdego nieudanego przesyłania, ustawiając nieograniczony limit czasu.
Duże zdjęcie lub nagranie może się nie przesłać, mimo że ta sama aplikacja działa normalnie, ponieważ treść żądania, przetwarzanie nadrzędne lub odpowiedź przekracza inny limit. Najpierw zapisz kod stanu, czas trwania, rozmiar pliku i log proxy. Te informacje pozwalają odróżnić odrzucenie z powodu rozmiaru treści od bezczynnego limitu czasu, przekroczenia limitu czasu backendu lub rozłączenia klienta.
Ustal etap, na którym przesyłanie się kończy
Powtórz próbę z jednym znanym plikiem i zanotuj, czy błąd występuje podczas przesyłania, po osiągnięciu przez pasek postępu 100 procent, czy podczas przetwarzania multimediów przez serwer. Każda faza odpowiada innemu połączeniu i limitowi czasu.
Powtarzający się błąd przy tej samej liczbie bajtów sugeruje limit rozmiaru treści; błąd po takim samym czasie bezczynności sugeruje przekroczenie limitu czasu. Błąd bramy po zakończeniu przesyłania wskazuje na oczekiwanie proxy na aplikację albo na własny limit czasu przetwarzania aplikacji.
Odczytaj wspólnie logi dostępu i błędów proxy oraz logi aplikacji. Jeśli klient jako pierwszy zamknął połączenie, samo zwiększenie limitu czasu proxy nie pomoże; sprawdź działanie aplikacji mobilnej w tle, stabilność VPN i ścieżkę żądania w przeglądarce.
Zmierz uzasadniony budżet czasu
Podziel największy akceptowany plik przez najniższą obsługiwaną przepustowość łącza nadrzędnego, aby oszacować czas przesyłania, a następnie dodaj zapas na TLS, buforowanie i zmienną przepustowość. Użyj tej wartości jako górnej granicy dla uzasadnionych operacji, a nie jako obietnicy, że każde wolne połączenie powinno pozostać otwarte na zawsze.
Rozróżniaj całkowity czas trwania od czasu bezczynności. Na przykład NGINX dokumentuje oddzielne dyrektywy limitów czasu proxy, a niektóre z nich mierzą odstęp między kolejnymi operacjami, a nie czas trwania całej odpowiedzi.
Uwzględniaj ryzyko ataku typu DoS. Zanim znacznie wydłużysz czas życia połączeń, zabezpiecz punkty przesyłania uwierzytelnianiem i kontrolą przepustowości, a także nie udostępniaj interfejsu administracyjnego proxy.
Dopasuj wszystkie warstwy bez przesady
Ustaw rozmiar treści żądania na poziomie równym lub wyższym od maksymalnej wartości obsługiwanej przez aplikację. Następnie dopasuj limity czasu odczytu treści od klienta, nawiązania połączenia z serwerem nadrzędnym, odczytu z serwera nadrzędnego i wysyłania do serwera nadrzędnego zgodnie z zaobserwowaną fazą błędu.
Sprawdź, czy zewnętrzny CDN, tunel, moduł równoważenia obciążenia lub drugi odwrotny serwer proxy nie ma krótszego, niezmiennego limitu. Skuteczny limit jest najmniejszym limitem w całym łańcuchu, więc zmiana ustawień wyłącznie wewnętrznego proxy może nie przynieść żadnego widocznego rezultatu.
Dokumentuj adresy URL aplikacji i trasy proxy. Poradnik ZimaSpace dotyczący Immich na udziale sieciowym pomaga oddzielić błędy ścieżki przesyłania od opóźnień i awarii montowania pamięci masowej.
Ponownie przetestuj wolne, duże i przerwane przesyłania
Prześlij pierwotny plik, który powodował błąd, z pierwotnej lokalizacji i przy pierwotnej prędkości sieci. Sukces oznacza zakończenie przesyłania, zindeksowanie przez aplikację oraz możliwość odtworzenia lub wyświetlenia pliku - nie tylko kod sukcesu HTTP.
Ogranicz prędkość połączenia testowego do najniższej obsługiwanej wartości i powtórz próbę. Następnie celowo przerwij jedno przesyłanie; pliki tymczasowe i niekompletne rekordy w bazie danych powinny zostać usunięte zgodnie z działaniem aplikacji.
Przestań zwiększać limity czasu, gdy logi wskazują awarię backendu, błąd pamięci masowej lub stały limit zewnętrznego dostawcy. Przywróć nadmierne wartości, napraw wadliwą warstwę i pozostaw najmniejszy limit czasu, który konsekwentnie obejmuje zmierzone obciążenie.
FAQ
Czy wszystkie limity czasu proxy powinny mieć tę samą wartość? Nie. Nawiązywanie połączenia, odczyt treści od klienta, oczekiwanie na odpowiedź serwera nadrzędnego i wysyłanie danych do klienta chronią różne fazy.
Dlaczego małe zdjęcie działa, a nagranie nie? Nagranie może przekraczać próg rozmiaru treści, trwać dłużej niż dopuszcza limit bezczynności albo uruchamiać dłuższe przetwarzanie po stronie serwera; logi i czas wystąpienia błędu pozwalają ustalić przyczynę.
Wsparcie i wskazówki
Więcej do przeczytania

Czy galeria hostowana samodzielnie może zachować parowanie zdjęć Live Photo firmy Apple?
Warunkowa decyzja dotycząca domowego serwera w zakresie parowania Apple Live Photo, z kontrolowanymi testami, interpretacją wyników, wycofaniem zmian i konkretnymi odpowiedziami na często zadawane...

Czy można zaimportować Google Takeout i kopie zapasowe telefonu do jednej biblioteki zdjęć?
Warunkowa decyzja dotycząca serwera domowego do łącznego importu zdjęć, obejmująca kontrolowane testy, interpretację wyników, wycofanie zmian i skoncentrowane sekcje FAQ.

Czy Immich może korzystać z zewnętrznej biblioteki bez przejmowania własności plików?
Warunkowa decyzja dotycząca serwera domowego w sprawie własności zewnętrznej biblioteki Immich, obejmująca kontrolowane testy, interpretację wyników, wycofanie zmian i zwięzłą sekcję FAQ.

