Jak dopasować limity czasu zwrotnych serwerów proxy do przesyłania dużych zdjęć i filmów

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

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.

-15% OFF

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

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.