Tworzenie niestandardowych stron błędów usługi Application Gateway

Usługa Application Gateway umożliwia tworzenie dostosowanych stron błędów zamiast wyświetlania domyślnych. Możesz użyć znakowania i układu pod kątem błędów związanych z różnymi kodami odpowiedzi. Niektóre scenariusze ustawiania niestandardowych stron błędów to

  • Wyświetlanie strony konserwacji lub stanu dla kodu odpowiedzi nieprawidłowej bramy 502. Jest to przydatne, gdy brama aplikacji nie ma serwera zaplecza do kierowania ruchu do podczas zaplanowanej konserwacji lub nieprzewidzianego problemu z serwerami puli zaplecza.
  • Wyświetlanie dostosowanej strony nieautoryzowanego dostępu dla kodu odpowiedzi 403 Zabronione, który występuje, gdy zapora aplikacji internetowej jest w trybie zapobiegania i blokuje złośliwy ruch.
  • Wyświetlanie strony oznaczonej marką firmy ze szczegółami kontaktowymi w przypadku problemu.

Obsługiwane kody odpowiedzi

Niestandardowe strony błędów są obsługiwane dla następujących kodów odpowiedzi:

Kod odpowiedzi opis
400 Nieprawidłowe żądanie (w wersji zapoznawczej)
403 Dostęp zabroniony
405 Niedozwolona metoda (w wersji zapoznawczej)
408 Limit czasu żądania (w wersji zapoznawczej)
500 Wewnętrzny błąd serwera (w wersji zapoznawczej)
502 Zła brama
503 Usługa niedostępna (w wersji zapoznawczej)
504 Limit czasu bramy (w wersji zapoznawczej)

Uwaga

  • Interfejs API w wersji 2022-09-01 lub nowszej powinien służyć do konfigurowania stron błędów dla nowych kodów odpowiedzi (w wersji zapoznawczej).
  • Kod odpowiedzi 404 (nie znaleziono strony) jest obecnie nieobsługiwany.
  • Niestandardowe strony błędów są wyświetlane dla kodów odpowiedzi generowanych przez usługę Application Gateway. Jeśli błąd pochodzi z serwera zaplecza, jest przekazywany wraz z niezmodyfikowanym klientem.

Poziomy konfiguracji

Niestandardowe strony błędów można zdefiniować na poziomie globalnym lub odbiornika:

  • Poziom globalny — strony błędów ustawione na poziomie globalnym są stosowane do wszystkich odbiorników tej bramy aplikacji. Konfiguracja za pośrednictwem witryny Azure Portal nie jest obecnie obsługiwana.
  • Poziom odbiornika — strony błędów na poziomie odbiornika zapewniają szczegółową kontrolę w celu ustawienia stron błędów dla aplikacji obsługiwanej przez ten odbiornik.

Uwaga

W przypadku używania kombinacji stron błędów globalnych i na poziomie odbiornika dla bramy należy jawnie wspomnieć o adresach URL dla wszystkich żądanych kodów odpowiedzi dla tego odbiornika. Konfiguracja specyficzna dla odbiornika zastępuje wszystkie poprzednie konfiguracje globalne mające zastosowanie do tego odbiornika.

Wymagania

Aby utworzyć niestandardową stronę błędu, należy

  • poznaj kod odpowiedzi, dla którego jest wymagana niestandardowa strona błędu.
  • zna odpowiednią lokalizację zdalną (adres URL) dla strony HTML. Musi to być publicznie dostępny plik.
  • upewnij się, że strona błędu jest publicznie dostępna i zwraca odpowiedź 200.
  • upewnij się, że strona błędu powinna być w typie rozszerzenia *.htm lub *.html.
  • upewnij się, że rozmiar strony jest mniejszy niż 1 MB.

Możesz odwoływać się do wewnętrznych lub zewnętrznych obrazów/CSS dla tego pliku HTML. W przypadku zasobów, do których istnieją odwołania zewnętrzne, użyj bezwzględnych adresów URL, które są publicznie dostępne. Należy pamiętać o rozmiarze pliku HTML podczas korzystania z obrazów wbudowanych zakodowanych w formacie Base64, JavaScript lub CSS.

Uwaga

  • W ekosystemie platformy Azure musisz użyć konta usługi Azure Blob Storage lub maszyny wirtualnej do hostowania strony błędu. Pamiętaj, że magazyn obiektów blob powinien być dostępny bezpośrednio, ponieważ konta magazynu fronteded by Azure CDN services nie są obecnie obsługiwane.
  • Możesz również hostować strony błędów w dowolnej lokalizacji zdalnej.
  • Łącza względne nie są obsługiwane.

Jak to działa?

Po określeniu strony błędu w konfiguracji bramy aplikacji brama sprawdza łączność ze stroną HTML przez Internet. Następnie pobiera plik w lokalnej pamięci podręcznej.

Gdy klient napotyka błąd, brama aplikacji zwraca kod odpowiedzi i stronę HTML. Wszystkie zewnętrznie przywoływane zasoby (takie jak obrazy, pliki JavaScript i CSS) są pobierane bezpośrednio przez klienta.

Brama aplikacji okresowo nie sprawdza lokalizacji pliku źródłowego, aby pobrać nową wersję. Możesz wykonać dowolną aktualizację konfiguracji w bramie, aby ręcznie zaktualizować pamięć podręczną pliku. Na przykład zmiana adresu URL błędu ze strony 1 na stronę 2, a następnie powrót do strony 1 lub dodanie nowego odbiornika.

Konfiguracja portalu

Kroki konfigurowania niestandardowych stron błędów specyficznych dla odbiornika:

  1. Przejdź do usługi Application Gateway w portalu i wybierz wymagany zasób.

  2. Wybierz pozycję Odbiorniki i przejdź do określonego odbiornika, dla którego chcesz określić stronę błędu.

  3. W sekcji Niestandardowe strony błędów określ publicznie dostępne adresy URL dla wymaganych kodów stanu.

  4. Wybierz pozycję Zapisz.

    Screenshot of Application Gateway custom error page.

Konfiguracja programu Azure PowerShell

Za pomocą programu Azure PowerShell można skonfigurować niestandardową stronę błędu. Na przykład globalna niestandardowa strona błędu:

$appgw   = Get-AzApplicationGateway -Name <app-gateway-name> -ResourceGroupName <resource-group-name>

$updatedgateway = Add-AzApplicationGatewayCustomError -ApplicationGateway $appgw -StatusCode HttpStatus502 -CustomErrorPageUrl "http://<website-url>"

Set-AzApplicationGateway -ApplicationGateway $appgw

Lub strona błędu na poziomie odbiornika:

$appgw   = Get-AzApplicationGateway -Name <app-gateway-name> -ResourceGroupName <resource-group-name>

$listener01 = Get-AzApplicationGatewayHttpListener -Name <listener-name> -ApplicationGateway $appgw

$updatedlistener = Add-AzApplicationGatewayHttpListenerCustomError -HttpListener $listener01 -StatusCode HttpStatus502 -CustomErrorPageUrl "http://<website-url>"

Set-AzApplicationGateway -ApplicationGateway $appgw

Aby uzyskać więcej informacji, zobacz Add-AzApplicationGatewayCustomError i Add-AzApplicationGatewayHttpListenerCustomError.

Następne kroki

Aby uzyskać informacje na temat diagnostyki usługi Application Gateway, zobacz Kondycja zaplecza, dzienniki diagnostyczne i metryki dla usługi Application Gateway.