Поделиться через


Создание пользовательских страниц ошибок с помощью службы "Шлюз приложений"

Шлюз приложений позволяет создавать настраиваемые страницы ошибок вместо отображения страниц ошибок по умолчанию. Вы можете использовать фирменную символику и макет для ошибок, связанных с различными кодами ответов. Некоторые сценарии настройки пользовательских страниц ошибок

  • Отображение страницы обслуживания или состояния для кода ответа на недопустимый шлюз 502. Это полезно, если у шлюза приложений нет серверного сервера для маршрутизации трафика во время запланированного обслуживания или непредвиденной проблемы с серверами внутреннего пула.
  • Отображение настраиваемой страницы несанкционированного доступа для кода ответа 403 Запрещено, которое возникает, когда WAF находится в режиме предотвращения и блокирует вредоносный трафик.
  • Отображение фирменной страницы компании с контактными данными в случае проблемы.

Поддерживаемые коды ответов

Пользовательские страницы ошибок поддерживаются для следующих кодов ответов:

Код отклика Description
400 Недопустимый запрос (в предварительной версии)
403 Запрещено
405 Метод не разрешен (в предварительной версии)
408 Время ожидания запроса (предварительная версия)
500 Внутренняя ошибка сервера (предварительная версия)
502 Недопустимый шлюз
503 Служба недоступна (в предварительной версии)
504 Время ожидания шлюза (предварительная версия)

Примечание.

  • API версии 2022-09-01 или более поздней версии следует использовать для настройки страниц ошибок для новых кодов ответов (в предварительной версии).
  • Код ответа 404 (страница не найдена) в настоящее время не поддерживается.
  • Пользовательские страницы ошибок отображаются для кодов ответов, созданных Шлюз приложений. Если ошибка возникает с серверного сервера, она передается клиенту без изменений.

Уровни конфигурации

Пользовательские страницы ошибок можно определить на уровне глобального или прослушивателя:

  • Глобальный уровень . Страницы ошибок, заданные на глобальном уровне, применяются ко всем прослушивателям этого шлюза приложений. Его конфигурация через портал Azure в настоящее время не поддерживается.
  • Уровень прослушивателя. Страницы ошибок на уровне прослушивателя позволяют детализировать управление, чтобы задать страницы ошибок для приложения, обслуживаемого этим прослушивателем.

Примечание.

При использовании сочетания страниц ошибок на уровне глобального и прослушивателя для шлюза необходимо явно указать URL-адреса для всех требуемых кодов ответов для этого прослушивателя. Конфигурация прослушивателя переопределяет все предыдущие глобальные конфигурации, применимые к прослушивателю.

Требования

Чтобы создать пользовательскую страницу ошибок, необходимо

  • знают код ответа, для которого требуется настраиваемая страница ошибок.
  • знают соответствующее удаленное расположение (URL-адрес) для HTML-страницы. Это должен быть общедоступный файл.
  • Убедитесь, что страница ошибок общедоступна и возвращает ответ 200.
  • убедитесь, что страница ошибок должна находиться в типе расширения *.htm или *.html.
  • Убедитесь, что размер страницы меньше 1 МБ.
  • Убедитесь, что параметры доступа к сети имеют значение "включено из всех сетей" при использовании учетной записи хранения BLOB-объектов Azure.

Вы можете ссылать на внутренние или внешние изображения или CSS для этого HTML-файла. Для ресурсов с внешней ссылкой используйте абсолютные URL-адреса, которые являются общедоступными. Учитывайте размер HTML-файла при использовании встроенных образов в кодировке Base64, JavaScript или CSS.

Примечание.

  • В экосистеме Azure необходимо использовать учетную запись хранения BLOB-объектов Azure или виртуальную машину для размещения страницы ошибки. Обратите внимание, что хранилище BLOB-объектов должно быть доступно напрямую, так как учетные записи хранения, созданные службами Azure CDN, в настоящее время не поддерживаются.
  • Вы также можете разместить страницы ошибок в любом удаленном расположении.
  • Относительные ссылки не поддерживаются.

Принципы работы.

После указания страницы ошибок в конфигурации шлюза приложений шлюз проверяет подключение к HTML-странице через Интернет. Затем он скачивает файл в локальном кэше.

Когда клиент сталкивается с ошибкой, шлюз приложений возвращает код отклика и страницу HTML. Все внешние ресурсы (например, изображения, JavaScript и CSS-файлы) извлекаются непосредственно клиентом.

Шлюз приложений периодически не проверяет расположение исходного файла, чтобы получить новую версию. Вы можете выполнить любое обновление конфигурации шлюза, чтобы вручную обновить кэш файла. Например, изменение URL-адреса ошибки с страницы 1 на страницу 2, а затем обратно на страницу 1 или при добавлении нового прослушивателя.

Настройка на портале

Действия по настройке пользовательских страниц ошибок, относящихся к прослушивателю:

  1. Перейдите к Шлюз приложений на портале и выберите необходимый ресурс.

  2. Выберите прослушиватели и перейдите к определенному прослушивателю, для которого нужно указать страницу ошибки.

  3. В разделе "Пользовательские страницы ошибок " укажите общедоступные URL-адреса для требуемых кодов состояния.

  4. Выберите Сохранить.

    Снимок экрана: страница пользовательской ошибки Шлюз приложений.

Конфигурация Azure PowerShell

Вы можете использовать Azure PowerShell для настройки страницы ошибки. Например, глобальная настраиваемая страница ошибки:

$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

Или страница ошибки уровня прослушивателя:

$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

Дополнительные сведения см. в статьях о командлетах Add-AzApplicationGatewayCustomError и Add-AzApplicationGatewayHttpListenerCustomError.

Следующие шаги

Сведения о Шлюз приложений диагностика см. в разделе о работоспособности серверной части, журналах диагностики и метрик для Шлюз приложений.