Rozwiązywanie problemów z błędami HTTP "502 bad gateway" i "503 service unavailable" w Azure App Service

"502 zła brama" i "503 usługa niedostępna" to typowe błędy w aplikacji hostowanej w Azure App Service. Ten artykuł ułatwia rozwiązywanie problemów z tymi błędami.

Jeśli potrzebujesz więcej pomocy w dowolnym momencie tego artykułu, możesz skontaktować się z ekspertami platformy Azure na forach MSDN Azure i Stack Overflow. Alternatywnie można również zgłosić zdarzenie pomoc techniczna platformy Azure. Przejdź do witryny pomocy technicznej platformy Azure i kliknij pozycję Uzyskaj pomoc techniczną.

Objaw

Po przejściu do aplikacji zwraca błąd HTTP "502 Zła brama" lub błąd HTTP "503 Usługa niedostępna".

Przyczyna

Ten problem jest często spowodowany problemami na poziomie aplikacji, takimi jak:

  • żądania trwają długo
  • aplikacja korzystająca z dużej ilości pamięci/procesora CPU
  • awaria aplikacji z powodu wyjątku.

Kroki rozwiązywania problemów z błędami "502 bad gateway" i "503 service unavailable"

Rozwiązywanie problemów można podzielić na trzy odrębne zadania w kolejności sekwencyjnej:

  1. Obserwowanie i monitorowanie zachowania aplikacji
  2. Zbieranie danych
  3. Eliminowanie problemu

App Service oferuje różne opcje w każdym kroku.

1. Obserwowanie i monitorowanie zachowania aplikacji

Śledzenie Kondycja usługi

Platforma Microsoft Azure nagłośnia za każdym razem, gdy występuje przerwa w działaniu usługi lub obniżenie wydajności. Kondycję usługi można śledzić w witrynie Azure Portal. Aby uzyskać więcej informacji, zobacz Śledzenie kondycji usługi.

Monitorowanie aplikacji

Ta opcja umożliwia sprawdzanie, czy aplikacja ma jakiekolwiek problemy. W bloku aplikacji kliknij kafelek Żądania i błędy . W bloku Metryka zostaną wyświetlone wszystkie metryki, które można dodać.

Niektóre metryki, które mogą być monitorowane dla aplikacji, to

  • Średni zestaw roboczy pamięci
  • Średni czas odpowiedzi
  • Czas procesora CPU
  • Zestaw roboczy pamięci
  • Żądania

monitorowanie aplikacji w celu rozwiązywania błędów HTTP 502 nieprawidłowej bramy i usługi 503 jest niedostępne

Aby uzyskać więcej informacji, zobacz:

2. Zbieranie danych

Korzystanie z narzędzia diagnostycznego

App Service zapewnia inteligentne i interaktywne środowisko ułatwiające rozwiązywanie problemów z aplikacją bez konieczności konfigurowania. Gdy wystąpią problemy z aplikacją, narzędzie diagnostyczne wskaże, co jest złe, aby ułatwić i szybko rozwiązać problem.

Aby uzyskać dostęp do diagnostyki App Service, przejdź do aplikacji App Service lub App Service Environment w Azure Portal. W obszarze nawigacji po lewej stronie kliknij pozycję Diagnozowanie i rozwiązywanie problemów.

Korzystanie z konsoli debugowania Kudu

App Service zawiera konsolę debugowania, której można używać do debugowania, eksplorowania, przekazywania plików oraz punktów końcowych JSON w celu uzyskania informacji o środowisku. Jest to nazywane konsolą Kudu lub pulpitem nawigacyjnym SCM dla aplikacji.

Dostęp do tego pulpitu nawigacyjnego można uzyskać, przechodząc do linku https://< Nazwa aplikacji.scm.azurewebsites.net/>.

Oto niektóre z rzeczy, które zapewnia Kudu:

  • ustawienia środowiska aplikacji
  • strumień dziennika
  • zrzut diagnostyczny
  • konsola debugowania, w której można uruchamiać polecenia cmdlet programu PowerShell i podstawowe polecenia systemu DOS.

Inną przydatną funkcją kudu jest to, że w przypadku, gdy aplikacja zgłasza wyjątki z pierwszej szansy, można użyć kudu i narzędzia SysInternals Procdump w celu utworzenia zrzutów pamięci. Te zrzuty pamięci to migawki procesu i często ułatwiają rozwiązywanie bardziej skomplikowanych problemów z aplikacją.

Aby uzyskać więcej informacji na temat funkcji dostępnych w usłudze Kudu, zobacz Narzędzia online usługi Azure Websites, o których należy wiedzieć.

3. Eliminowanie problemu

Skalowanie aplikacji

W Azure App Service w celu zwiększenia wydajności i przepływności można dostosować skalę, w której działa aplikacja. Skalowanie w górę aplikacji obejmuje dwie powiązane akcje: zmianę App Service planu na wyższą warstwę cenową i skonfigurowanie niektórych ustawień po przełączeniu do wyższej warstwy cenowej.

Aby uzyskać więcej informacji na temat skalowania, zobacz Skalowanie aplikacji w Azure App Service.

Ponadto możesz uruchomić aplikację w więcej niż jednym wystąpieniu . Zapewnia to nie tylko większą możliwość przetwarzania, ale także zapewnia pewną odporność na uszkodzenia. Jeśli proces ulegnie awarii w jednym wystąpieniu, drugie wystąpienie będzie nadal obsługiwać żądania.

Skalowanie można ustawić na Wartość Ręczna lub Automatyczna.

Korzystanie z autohealu

Automatyczne odtwarzanie procesu roboczego aplikacji na podstawie wybranych ustawień (takich jak zmiany konfiguracji, żądania, limity oparte na pamięci lub czas potrzebny do wykonania żądania). W większości przypadków odtwarzanie procesu jest najszybszym sposobem odzyskiwania po problemie. Chociaż zawsze możesz ponownie uruchomić aplikację bezpośrednio w witrynie Azure Portal, funkcja AutoHeal wykona ją automatycznie. Wystarczy dodać niektóre wyzwalacze w katalogu głównym web.config dla aplikacji. Należy pamiętać, że te ustawienia będą działać w taki sam sposób, nawet jeśli aplikacja nie jest platformą .NET.

Aby uzyskać więcej informacji, zobacz Autonaprawiania witryn internetowych platformy Azure.

Uruchom ponownie aplikację

Jest to często najprostszy sposób odzyskiwania po jednorazowych problemach. W witrynie Azure Portal w bloku aplikacji dostępne są opcje zatrzymania lub ponownego uruchomienia aplikacji.

uruchom ponownie aplikację, aby rozwiązać błędy HTTP 502 nieprawidłowej bramy i usługi 503 niedostępne

Możesz również zarządzać aplikacją przy użyciu Azure PowerShell. Aby uzyskać więcej informacji, zobacz temat Using Azure PowerShell with Azure Resource Manager (Używanie programu Azure PowerShell z usługą Azure Resource Manager).