Creación de páginas de error personalizadas de Application Gateway

Application Gateway permite crear páginas de error personalizadas en lugar de mostrar las predeterminadas. Puede usar su personalización de marca y diseño para los errores relacionados con los diferentes códigos de respuesta. Estos son algunos escenarios para establecer páginas de error personalizadas:

  • Mostrar una página de mantenimiento o de estado para el código de respuesta de puerta de enlace incorrecta 502. Esto resulta útil cuando la puerta de enlace de aplicación no tiene ningún servidor backend para enrutar el tráfico durante el mantenimiento programado o un problema imprevisto con los servidores del grupo de backend.
  • Mostrar una página de acceso no autorizado personalizada para el código de respuesta 403 Prohibido que se produce cuando el WAF está en modo de prevención y bloquea el tráfico malintencionado.
  • Mostrar una página de marca de empresa con los detalles de contacto en caso de un problema.

Códigos de respuesta admitidos

Se admiten páginas de error personalizadas para los códigos de respuesta siguientes:

Response code Descripción
400 Solicitud incorrecta (en versión preliminar)
403 Prohibida
405 Método no permitido (en versión preliminar)
408 Tiempo de espera de solicitud (en versión preliminar)
500 Error interno del servidor (en versión preliminar)
502 Puerta de enlace incorrecta
503 Servicio no disponible (en versión preliminar)
504 Tiempo de espera de puerta de enlace (en versión preliminar)

Nota:

  • Se debe usar la versión 2022-09-01 o posterior de la API para configurar páginas de error para los nuevos códigos de respuesta (en versión preliminar).
  • El código de respuesta 404 (página no encontrada) no se admite actualmente.
  • Las páginas de error personalizadas se muestran para los códigos de respuesta generados por Application Gateway. Si se origina un error desde el servidor backend, se pasa sin modificar al cliente.

Niveles de configuración

Las páginas de error personalizadas se pueden definir en el nivel global o de cliente de escucha:

  • Nivel global: las páginas de error establecidas en el nivel global se aplican a todos los clientes de escucha de esa puerta de enlace de aplicación. Actualmente, no se admite su configuración mediante Azure Portal.
  • Nivel de cliente de escucha: las páginas de error del nivel de cliente de escucha le proporcionan un control granular para establecer páginas de error para la aplicación atendida por ese cliente de escucha.

Nota:

Al usar una combinación de páginas de error de nivel global y de cliente de escucha para una puerta de enlace, debe mencionar explícitamente las direcciones URL de todos los códigos de respuesta deseados para ese cliente de escucha. Una configuración específica del cliente de escucha invalida todas las configuraciones globales anteriores aplicables a ese cliente de escucha.

Requisitos

Para crear una página de error personalizada, debe:

  • conocer el código de respuesta para el que se necesita una página de error personalizada.
  • conocer la ubicación remota (URL) correspondiente para la página HTML. Debe ser un archivo accesible públicamente.
  • asegurarse de que la página de error sea accesible públicamente y devuelva una respuesta 200.
  • asegurarse de que la página de error tenga el tipo de extensión *.htm o *.html.
  • asegurarse de que el tamaño de la página sea inferior a 1 MB.

Puede hacer referencia a imágenes o código CSS internos o externos para este archivo HTML. Para los recursos a los que se hace referencia externamente, use direcciones URL absolutas a las que se pueda acceder públicamente. Tenga en cuenta el tamaño del archivo HTML al usar imágenes insertadas codificadas en base 64, JavaScript o CSS.

Nota:

  • Dentro del ecosistema de Azure, debe usar una cuenta de Azure Blob Storage o una máquina virtual para hospedar una página de error. Tenga en cuenta que el almacenamiento de blobs debe ser accesible directamente, ya que actualmente no se admiten las cuentas de almacenamiento con un frontend de los servicios de Azure CDN.
  • También puede optar por hospedar las páginas de error en cualquier ubicación remota.
  • No se admiten vínculos relativos.

¿Cómo funciona?

Después de especificar una página de error en la configuración de la puerta de enlace de aplicación, la puerta de enlace comprueba la conectividad a la página HTML mediante Internet. A continuación, descarga el archivo en su caché local.

Cuando un cliente se enfrenta a un error, la puerta de enlace de aplicación devuelve un código de respuesta y esa página HTML. El cliente captura directamente los recursos a los que se hace referencia externamente (como imágenes, JavaScript y archivos CSS).

La puerta de enlace de aplicación no comprueba periódicamente la ubicación del archivo de origen para capturar una nueva versión. Puede realizar cualquier actualización de configuración en la puerta de enlace para actualizar manualmente la memoria caché del archivo. Por ejemplo, al cambiar la dirección URL de error de la página 1 a la página 2 y volver a la página 1, o al agregar un nuevo cliente de escucha.

Configuración del portal

Pasos para configurar páginas de error personalizadas específicas del cliente de escucha:

  1. Vaya a Application Gateway en el portal y elija el recurso necesario.

  2. Seleccione Clientes de escucha y vaya a un cliente de escucha determinado para el que desea especificar una página de error.

  3. En la sección Páginas de error personalizadas, especifique direcciones URL accesibles públicamente para los códigos de estado necesarios.

  4. Seleccione Guardar.

    Screenshot of Application Gateway custom error page.

Configuración de Azure PowerShell

También puede usar Azure PowerShell para configurar una página de errores personalizada. Por ejemplo, una página de error personalizada general:

$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 página de error específica del nivel del agente de escucha:

$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

Para más información, consulte Add-AzApplicationGatewayCustomError y Add-AzApplicationGatewayHttpListenerCustomError.

Pasos siguientes

Para más información sobre los diagnósticos de Application Gateway, consulte Mantenimiento del back-end, registros de diagnóstico y métricas de Application Gateway.