Reverse proxy może przekierować jedną aplikację do domeny innej aplikacji, gdy backend lub middleware tworzy przekierowania na podstawie niewłaściwej publicznej nazwy hosta.
W samodzielnie hostowanym środowisku ZimaSpace kilka aplikacji może korzystać z tego samego proxy, a każda z nich może oczekiwać własnego publicznego bazowego adresu URL. Jeśli Host, X-Forwarded-Host, schemat, middleware lub kanoniczny adres URL na poziomie aplikacji wskazuje inną usługę, pierwsza strona może wczytać się prawidłowo, a kolejne przekierowanie 301, 302 lub zwrotne przekierowanie logowania może zmienić domenę.
Sprawdź host i schemat przekazywane do backendu
Podczas odtwarzania przekierowania przechwyć nagłówki żądania w proxy i backendzie.
Praktyczny przewodnik dotyczący implementacji reverse proxy na temat przekazywania hosta i schematu do backendu pomaga wyodrębnić tę gałąź problemu, ponieważ dotyczy tego samego szczegółowego zagadnienia, zamiast jedynie definiować podstawowy protokół.
Najpierw popraw nagłówki proxy, a dopiero potem zmieniaj adresy URL aplikacji. Backend nie może utworzyć prawidłowego bezwzględnego przekierowania, jeśli uważa, że żądanie użyło innego hosta.
Sprawdź w szczególności X-Forwarded-Host
Niektóre frameworki używają nagłówka X-Forwarded-Host zamiast surowego nagłówka Host podczas generowania bezwzględnych adresów URL.
Skoncentrowane wyjaśnienie dotyczące nagłówka HTTP na temat zachowywania publicznej nazwy hosta przez X-Forwarded-Host pomaga wyodrębnić tę gałąź problemu, ponieważ dotyczy tego samego szczegółowego zagadnienia, zamiast jedynie definiować podstawowy protokół.
Porównaj ten nagłówek w działającej aplikacji i aplikacji, która przekierowuje w niewłaściwe miejsce. Usuń globalne nadpisania wymuszające jedną domenę dla każdego backendu.
Sprawdź, czy aplikacja generuje bezwzględne adresy URL
Poszukaj ustawień frameworka, które ufają nagłówkom proxy i tworzą kanoniczne odnośniki lub przekierowania.
Praktyczny blog dotyczący debugowania proxy w rzeczywistych wdrożeniach na temat błędnych bezwzględnych adresów URL za proxy pomaga wyodrębnić tę gałąź problemu, ponieważ dotyczy tego samego szczegółowego zagadnienia, zamiast jedynie definiować podstawowy protokół.
Napraw zaufanie frameworka do proxy lub ustawienie publicznego adresu URL, zamiast przepisywać każde przekierowanie na brzegu sieci.
Zweryfikuj bazowy adres URL aplikacji lub domenę kanoniczną
Wiele samodzielnie hostowanych aplikacji przechowuje adres URL witryny niezależnie od reguły proxy.
Praktyczne studium przypadku aplikacji działającej za proxy na temat nadpisywania nazwy hosta proxy przez bazowy adres URL aplikacji pomaga wyodrębnić tę gałąź problemu, ponieważ dotyczy tego samego szczegółowego zagadnienia, zamiast jedynie definiować podstawowy protokół.
Po migracjach lub przywracaniu kopii porównaj zapisane wartości adresu URL aplikacji. Jedna skopiowana baza danych może zawierać kanoniczną nazwę hosta z innego środowiska aplikacji.
Przeanalizuj middleware przekierowań przed backendem
Reguła proxy może celowo zmienić schemat lub host, zanim żądanie w ogóle dotrze do aplikacji.
Praktyczny poradnik dotyczący Traefika w homelabie na temat zastępowania hosta przez middleware przekierowań pomaga wyodrębnić tę gałąź problemu, ponieważ dotyczy tego samego szczegółowego zagadnienia, zamiast jedynie definiować podstawowy protokół.
Na czas jednego testu wyłącz tylko podejrzane middleware przekierowań dla jednego routera. Wymuszanie HTTPS trzymaj oddzielnie od przekierowań między domenami.
Sprawdź adresy URL zwrotnego przekierowania OAuth i OIDC
Przepływy uwierzytelniania często ujawniają niewłaściwą publiczną nazwę hosta, ponieważ dostawca sprawdza dokładny identyfikator URI przekierowania.
Skoncentrowany artykuł dotyczący rozwiązywania problemów z OIDC na temat zależności callbacków OIDC od publicznego adresu URL proxy pomaga wyodrębnić tę gałąź problemu, ponieważ dotyczy tego samego szczegółowego zagadnienia, zamiast jedynie definiować podstawowy protokół.
Porównaj jednocześnie wystawcę, callback, przekazywane nagłówki i bazowy adres URL aplikacji. Prawidłowe wczytanie zwykłej strony nie dowodzi, że ścieżka callbacku logowania działa poprawnie.
Ponownie przetestuj dokładną ścieżkę serwera domowego
Po zmianie jednej zmiennej powtórz ten sam przebieg pracy z NAS-em lub środowiskiem samodzielnie hostowanym, korzystając z tego samego klienta, zamiast przełączać się na inny test, który może używać innej ścieżki.
Powiązany przewodnik ZimaSpace na temat powiązanej ścieżki sieci serwera domowego pomaga zachować weryfikację końcową w tym samym samodzielnie hostowanym środowisku.
Naprawę można uznać za zakończoną dopiero wtedy, gdy pierwotny objaw nie powróci po ponownym połączeniu, restarcie usługi oraz drugim kontrolowanym transferze lub żądaniu.
Często zadawane pytania
Czy DNS może powodować przekierowanie HTTP 301 lub 302?
DNS zwraca tylko adres. Przekierowanie jest generowane przez proxy, warstwę uwierzytelniania lub aplikację.
Dlaczego właściwa aplikacja wczytuje się, zanim przeglądarka zmieni domenę?
Początkowa trasa proxy może być prawidłowa, podczas gdy backend generuje późniejsze bezwzględne przekierowanie na podstawie niewłaściwego bazowego adresu URL lub przekazanego hosta.
Czy powinienem przepisywać każdy nagłówek Location w proxy?
Nie. Najpierw napraw źródło nieprawidłowej nazwy hosta; szerokie przepisywanie odpowiedzi może ukryć błędy konfiguracji aplikacji.
Wsparcie i wskazówki
Więcej do przeczytania

Czy Plex może współdzielić kartę graficzną z innym kontenerem Dockera?
Plex i inny kontener często mogą korzystać z tego samego układu GPU, ale należy przetestować obsługę sterowników, mapowanie urządzeń, obciążenie silnika wideo, pamięć oraz...

Jak ustalić, czy błąd Plex pochodzi od klienta, czy od serwera
Odtwórz ten sam przypadek na innym kliencie, porównaj ścieżkę sesji, a następnie zbierz dowody z serwera dopiero wtedy, gdy zakres analizy wskaże, gdzie faktycznie...

Jak skonfigurować pamięć podręczną Plex i tymczasową pamięć na transkodowane pliki
Chroń trwały stan Plex, umieszczając tymczasowe pliki transkodowania na odpowiedniej pamięci lokalnej, a następnie zweryfikuj czyszczenie, ilość wolnego miejsca i zachowanie podczas ponownego uruchamiania.

