Rozwiązywanie typowych problemów z usługą Azure Front Door

W tym artykule opisano sposób rozwiązywania typowych problemów z routingiem, które mogą wystąpić podczas konfigurowania usługi Azure Front Door.

Inne debugowanie nagłówków HTTP

Możesz poprosić usługę Azure Front Door o zwrócenie dodatkowych nagłówków odpowiedzi HTTP debugowania. Aby uzyskać więcej informacji, zobacz opcjonalne nagłówki odpowiedzi.

503 lub 504 odpowiedź z usługi Azure Front Door po kilku sekundach

Objaw

  • Regularne żądania wysyłane do zaplecza bez przechodzenia przez usługę Azure Front Door kończą się powodzeniem. Przejście przez usługę Azure Front Door powoduje 503 lub 504 odpowiedzi na błędy.
  • Awaria usługi Azure Front Door zwykle pojawia się po około 30 sekundach.
  • Sporadyczne błędy 503 są wyświetlane z komunikatem "ErrorInfo: OriginInvalidResponse".

Przyczyna

Przyczyną tego problemu może być jedna z trzech rzeczy:

  • Źródło trwa dłużej niż limit czasu skonfigurowany do odbierania żądania z usługi Azure Front Door. Domyślny limit czasu to 30 sekund.
  • Czas wysyłania odpowiedzi do żądania z usługi Azure Front Door trwa dłużej niż wartość limitu czasu.
  • Klient wysłał żądanie zakresu bajtów z nagłówkiem Accept-Encoding , co oznacza, że jest włączona kompresja.

Kroki rozwiązywania problemów

  • Wyślij żądanie bezpośrednio do źródła bez przechodzenia przez usługę Azure Front Door. Zobacz, jak długo zwykle trwa reagowanie źródła.

  • Wyślij żądanie za pośrednictwem usługi Azure Front Door i sprawdź, czy otrzymujesz odpowiedzi 503. Jeśli nie, problem może nie być problemem przekroczenia limitu czasu. Utwórz wniosek o pomoc techniczną, aby rozwiązać ten problem.

  • Jeśli żądania przechodzące przez usługę Azure Front Door spowodują wyświetlenie kodu odpowiedzi błędu 503, skonfiguruj limit czasu odpowiedzi źródła dla usługi Azure Front Door. Domyślny limit czasu można zwiększyć do 4 minut (240 sekund). Aby skonfigurować to ustawienie, przejdź do strony przeglądu profilu usługi Front Door. Wybierz pozycję Limit czasu odpowiedzi źródła i wprowadź wartość z zakresu od 16 do 240 sekund.

    Uwaga

    Możliwość skonfigurowania limitu czasu odpowiedzi źródła jest dostępna tylko w usłudze Azure Front Door Standard/Premium.

    Screenshot of the origin timeout settings on the overview page of the Azure Front Door profile.

  • Jeśli zwiększenie limitu czasu nie rozwiąże problemu, użyj narzędzia takiego jak Fiddler lub narzędzie deweloperskie przeglądarki, aby sprawdzić, czy klient wysyła żądania zakresu bajtów za pomocą nagłówków Accept-Encoding . Użycie tej opcji prowadzi do odpowiedzi źródła o różnych długościach zawartości.

    Jeśli klient wysyła żądania zakresu bajtów z nagłówkami Accept-Encoding , masz dwie opcje. Pierwszą opcją jest wyłączenie kompresji źródła lub usługi Azure Front Door. Drugą opcją jest utworzenie reguły zestawu reguł, aby usunąć kodowanie Accept-Encoding z żądania dla żądań zakresu bajtów.

    Screenshot that shows the Accept-Encoding rule in a rule set.

503 odpowiedzi z usługi Azure Front Door tylko dla protokołu HTTPS

Objaw

  • Wszystkie odpowiedzi 503 są zwracane tylko dla punktów końcowych z obsługą protokołu HTTPS usługi Azure Front Door.
  • Regularne żądania wysyłane do zaplecza bez przechodzenia przez usługę Azure Front Door kończą się powodzeniem. Przejście za pośrednictwem usługi Azure Front Door powoduje 503 odpowiedzi na błędy.
  • Sporadyczne błędy 503 są wyświetlane z komunikatem "ErrorInfo: OriginInvalidResponse".

Przyczyna

Przyczyną tego problemu może być jedna z trzech rzeczy:

  • Pula zaplecza jest adresem IP.
  • Serwer zaplecza zwraca certyfikat, który nie jest zgodny z nazwą FQDN puli zaplecza usługi Azure Front Door.
  • Pula zaplecza jest serwerem usługi Azure Web Apps.

Kroki rozwiązywania problemów

  • Pula zaplecza jest adresem IP.

    EnforceCertificateNameCheck musi być wyłączona.

    Usługa Azure Front Door ma przełącznik o nazwie EnforceCertificateNameCheck. Domyślnie to ustawienie jest włączone. Po włączeniu usługa Azure Front Door sprawdza, czy nazwa FQDN hosta puli zaplecza jest zgodna z nazwą certyfikatu serwera zaplecza lub jednym z wpisów w rozszerzeniu nazw alternatywnych podmiotu.

    • Jak wyłączyć EnforceCertificateNameCheck z witryny Azure Portal:

      W portalu użyj przycisku przełącznika, aby włączyć lub wyłączyć to ustawienie w okienku Projekt usługi Azure Front Door (wersja klasyczna).

      Screenshot that shows the toggle button.

      W przypadku warstwy Azure Front Door Standard i Premium to ustawienie można znaleźć w ustawieniach źródła podczas dodawania źródła do grupy pochodzenia lub konfigurowania trasy.

      Screenshot of the certificate subject name validation checkbox.

  • Serwer zaplecza zwraca certyfikat, który nie jest zgodny z nazwą FQDN puli zaplecza usługi Azure Front Door. Aby rozwiązać ten problem, masz dwie opcje:

    • Zwrócony certyfikat musi być zgodny z nazwą FQDN.
    • EnforceCertificateNameCheck musi być wyłączona.
  • Pula zaplecza to serwer usługi Azure Web Apps:

    • Sprawdź, czy aplikacja internetowa platformy Azure jest skonfigurowana przy użyciu protokołu SSL opartego na protokole IP, a nie opartego na protokole SNI. Jeśli aplikacja internetowa jest skonfigurowana jako oparta na adresie IP, powinna zostać zmieniona na SNI.
    • Jeśli zaplecze jest w złej kondycji z powodu błędu certyfikatu, zostanie zwrócony komunikat o błędzie 503. Kondycję zapleczy można sprawdzić na portach 80 i 443. Jeśli tylko 443 jest w złej kondycji, prawdopodobnie występuje problem z protokołem SSL. Ponieważ zaplecze jest skonfigurowane do używania nazwy FQDN, wiemy, że wysyła SNI.

    Użyj polecenia OPENSSL, aby zweryfikować zwracany certyfikat. Aby to sprawdzić, połącz się z zapleczem przy użyciu polecenia -servername. Powinien zwrócić nazwę SNI, która musi być zgodna z nazwą FQDN puli zaplecza:

    openssl s_client -connect backendvm.contoso.com:443 -servername backendvm.contoso.com

Żądania wysyłane do domeny niestandardowej zwracają kod stanu 400

Objaw

  • Utworzono wystąpienie usługi Azure Front Door. Żądanie do domeny lub hosta frontonu zwraca kod stanu HTTP 400.
  • Utworzono mapowanie DNS dla domeny niestandardowej na skonfigurowany host frontonu. Wysłanie żądania do niestandardowej nazwy hosta domeny zwraca kod stanu HTTP 400. Wydaje się, że nie jest kierowany do skonfigurowanego zaplecza.

Przyczyna

Problem występuje, jeśli nie skonfigurowano reguły routingu dla domeny niestandardowej, która została dodana jako host frontonu. Dla tego hosta frontonu należy jawnie dodać regułę routingu. Należy utworzyć regułę, nawet jeśli reguła routingu została już skonfigurowana dla hosta frontonu w poddomenie usługi Azure Front Door, czyli *.azurefd.net.

Krok rozwiązywania problemów

Dodaj regułę routingu dla domeny niestandardowej, aby kierować ruch do wybranej grupy pochodzenia.

Usługa Azure Front Door nie przekierowuje protokołu HTTP do protokołu HTTPS

Objaw

Usługa Azure Front Door ma regułę routingu, która przekierowuje protokół HTTP do protokołu HTTPS, ale uzyskiwanie dostępu do domeny nadal utrzymuje protokół HTTP.

Przyczyna

To zachowanie może wystąpić, jeśli nie skonfigurowaliśmy poprawnie reguł routingu dla usługi Azure Front Door. Bieżąca konfiguracja nie jest specyficzna i może mieć reguły powodujące konflikt.

Kroki rozwiązywania problemów

Żądanie do nazwy hosta frontonu zwraca kod stanu 411

Objaw

Utworzono wystąpienie usługi Azure Front Door Standard/Premium i skonfigurowano:

  • Host frontonu.
  • Grupa pochodzenia z co najmniej jednym źródłem.
  • Reguła routingu, która łączy hosta frontonu z grupą źródeł.

Zawartość nie jest dostępna, gdy żądanie trafia do skonfigurowanego hosta frontonu, ponieważ zwracany jest kod stanu HTTP 411.

Odpowiedzi na te żądania mogą również zawierać stronę błędu HTML w treści odpowiedzi, która zawiera instrukcję objaśnienia. Przykładem jest "Błąd HTTP 411. Żądanie musi być fragmentowane lub mieć długość zawartości.

Przyczyna

Istnieje kilka możliwych przyczyn tego objawu. Ogólną przyczyną jest to, że żądanie HTTP nie jest w pełni zgodne z specyfikacją RFC.

Przykładem niezgodności jest POST żądanie wysyłane bez nagłówka Content-Length lub Transfer-Encoding . Przykładem może być użycie elementu curl -X POST https://example-front-door.domain.com. To żądanie nie spełnia wymagań określonych w specyfikacji RFC 7230. Usługa Azure Front Door zablokowałaby ją z odpowiedzią HTTP 411. Takie żądania nie są rejestrowane.

To zachowanie jest oddzielone od funkcji zapory aplikacji internetowej (WAF) usługi Azure Front Door. Obecnie nie ma możliwości wyłączenia tego zachowania. Wszystkie żądania HTTP muszą spełniać wymagania, nawet jeśli funkcja zapory aplikacji internetowej nie jest używana.

Kroki rozwiązywania problemów

  • Sprawdź, czy twoje żądania są zgodne z wymaganiami określonymi w niezbędnych rfcs.
  • Zanotuj treść wiadomości HTML zwróconą w odpowiedzi na żądanie. Treść komunikatu często wyjaśnia dokładnie , jak żądanie jest niezgodne.

Moje źródło jest skonfigurowane jako adres IP.

Objaw

Źródło jest skonfigurowane jako adres IP. Źródło jest w dobrej kondycji, ale odrzuca żądania z usługi Azure Front Door.

Przyczyna

Usługa Azure Front Door użytkownicy nazwy hosta pochodzenia jako nagłówka SNI podczas uzgadniania PROTOKOŁU SSL. Ponieważ źródło jest skonfigurowane jako adres IP, awaria może być spowodowana jedną z następujących przyczyn:

  • Sprawdzanie nazwy certyfikatu jest włączone w konfiguracji źródła usługi Front Door. Zaleca się pozostawienie tego ustawienia włączonego. Sprawdzanie nazwy certyfikatu wymaga, aby nazwa hosta pochodzenia odpowiadała nazwie certyfikatu lub jednemu z wpisów w rozszerzeniu nazw alternatywnych podmiotu.
  • Jeśli sprawdzanie nazwy certyfikatu jest wyłączone, przyczyną jest prawdopodobnie logika certyfikatu pochodzenia odrzucając wszelkie żądania, które nie mają prawidłowego nagłówka hosta w żądaniu zgodnym z certyfikatem.

Kroki rozwiązywania problemów

Zmień źródło z adresu IP na nazwę FQDN, do której wystawiono prawidłowy certyfikat zgodny z certyfikatem pochodzenia.

Następne kroki