Condividi tramite


Creare pagine di errore personalizzate del gateway applicazione

Il gateway applicazione consente di creare pagine di errore personalizzate da visualizzare al posto di quelle predefinite. Per gli errori correlati a codici di risposta diversi, è possibile usare elementi di personalizzazione e layout. Alcuni scenari per l'impostazione di pagine di errore personalizzate sono

  • Visualizzazione di una pagina di manutenzione o stato per il codice di risposta 502 Gateway non valido. Questa opzione è utile quando il gateway applicazione non dispone di un server back-end verso il quale indirizzare il traffico durante la manutenzione pianificata o quando si verifica un problema imprevisto con i server del pool back-end.
  • Visualizzazione di una pagina di accesso non autorizzato personalizzata per il codice di risposta 403 Accesso negato quando WAF è in modalità di prevenzione e blocca il traffico dannoso.
  • Visualizzazione di una pagina con marchio aziendale che riporta le informazioni di contatto in caso di problemi.

Codici di risposta supportati

Le pagine di errore personalizzate sono supportate per i codici di risposta seguenti:

Codice della risposta Descrizione
400 Richiesta non valida (in anteprima)
403 Non consentito
405 Metodo non consentito (in anteprima)
408 Timeout della richiesta (in anteprima)
500 Errore interno del server (in anteprima)
502 Gateway non valido
503 Servizio non disponibile (in anteprima)
504 Timeout del gateway (in anteprima)

Nota

  • Usare l'API versione 01-09-2022 o successive per configurare le pagine di errore per i nuovi codici di risposta (in anteprima).
  • Il codice di risposta 404 (Pagina non trovata) non è attualmente supportato.
  • Le pagine di errore personalizzate vengono visualizzate per i codici di risposta generati dal gateway applicazione. Se un errore proviene dai server back-end, viene inviato senza modifiche al client.

Livelli di configurazione

Le pagine di errore personalizzate possono essere definite a livello globale e di listener:

  • Livello globale - Le pagine di errore impostate a livello globale vengono applicate a tutti i listener del gateway applicazione. La configurazione tramite il portale di Azure non è attualmente supportata.
  • Livello di listener - Le pagine di errore impostate a livello di listener offrono un controllo granulare per l'applicazione gestita da tale listener.

Nota

Quando si usa una combinazione di pagine di errore a livello globale e di listener per un gateway, è necessario menzionare gli URL in modo esplicito per tutti i codici di risposta desiderati per tale listener. Una configurazione specifica del listener esegue l'override di tutte le configurazioni globali precedenti che possono essere applicate a tale listener.

Requisiti

Per creare una pagina di errore personalizzata, è necessario

  • conoscere il codice di risposta per il quale è richiesta una pagina di errore personalizzata.
  • conoscere la posizione remota corrispondente (URL) per la pagina HTML. Il file deve essere accessibile pubblicamente.
  • assicurarsi che la pagina di errore sia accessibile pubblicamente e restituire una risposta 200.
  • assicurarsi che la pagina di errore abbia il tipo di estensione *.htm o *.html.
  • assicurarsi che le dimensioni della pagina siano inferiori a 1 MB.

È possibile fare riferimento a immagini/CSS interni o esterni per questo file HTML. Per le risorse a cui si fa riferimento esternamente, usare gli URL assoluti accessibili pubblicamente. Tenere presenti le dimensioni del file HTML quando si usano immagini inline con codifica base64, JavaScript o CSS.

Nota

  • Per ospitare una pagina di errore nell'ecosistema di Azure, è necessario usare un account di archiviazione BLOB o una macchina virtuale di Azure. Si noti che l'archiviazione BLOB deve essere accessibile direttamente in quanto gli account di archiviazione gestiti dai servizi della rete CDN di Azure non sono attualmente supportati.
  • È anche possibile scegliere di ospitare le pagine di errore in qualsiasi posizione remota.
  • I collegamenti relativi non sono supportati.

Funzionamento

Dopo aver specificato una pagina di errore nella configurazione del gateway applicazione, il gateway verifica la connettività alla pagina HTML su Internet. Dopodiché, scarica il file nella cache locale.

Quando un client riscontra un errore, il gateway applicazione restituisce un codice di risposta per tale pagina HTML. Tutte le risorse a cui viene fatto riferimento esternamente (come file immagine, JavaScript e CSS) vengono recuperate direttamente dal client.

Il gateway applicazione non verifica periodicamente la posizione del file di origine per recuperare una nuova versione. È possibile eseguire qualsiasi aggiornamento della configurazione nel gateway per aggiornare manualmente la cache del file. Ad esempio, quando si modifica l'URL di errore dalla pagina 1 alla pagina 2 per poi tornare alla pagina 1 oppure quando si aggiunge un nuovo listener.

Configurazione del portale

Procedura per la configurazione di pagine di errore personalizzate specifiche del listener:

  1. Passare a Gateway applicazione nel portale e scegliere la risorsa richiesta.

  2. Selezionare Listener e passare a un listener specifico per il quale si desidera specificare una pagina di errore.

  3. Nella sezione Pagine di errore personalizzate, specificare URL accessibili pubblicamente per i codici di stato richiesti.

  4. Seleziona Salva.

    Screenshot of Application Gateway custom error page.

Configurazione di Azure PowerShell

È anche possibile usare Azure PowerShell per configurare una pagina di errore personalizzata. Una pagina di errore personalizzata globale di esempio:

$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

O una pagina di errore a livello di listener:

$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

Per altre informazioni, vedere Add-AzApplicationGatewayCustomError e Add-AzApplicationGatewayHttpListenerCustomError.

Passaggi successivi

Per informazioni sulla diagnostica del gateway applicazione, vedere Integrità back-end, log di diagnostica e metriche per il gateway applicazione.