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


Настройка параметров серверной части шлюза приложений

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

Типы параметров серверной части в шлюзе приложений

Хотя пользователи портала увидят только параметр "Параметры серверной части", пользователи API получат доступ к двум типам параметров. В соответствии с протоколом необходимо использовать правильную конфигурацию.

  • Параметры HTTP серверной части — это для конфигураций прокси-сервера уровня 7, поддерживающих протоколы HTTP и HTTPS.
  • Параметры серверной части — это конфигурации прокси-сервера уровня 4 (предварительная версия), поддерживающие протоколы TLS и TCP.

Шлюз приложений Azure использует управляемые шлюзом файлы cookie для поддержания пользовательских сеансов. Когда пользователь отправляет первый запрос шлюзу приложений Application Gateway, он устанавливает cookie для привязки в ответе с хэш-значением, содержащим сведения о сеансе. Этот процесс позволяет последующим запросам, которые переносят cookie для привязки, направляться на тот же сервер обработки, обеспечивая постоянное соединение.

Эта функция полезна, если необходимо поддерживать сеанс пользователя на том же сервере и сохранить состояние сеанса локально на сервере для сеанса пользователя. Если приложение не может обрабатывать сходство на основе файла cookie, эту функцию использовать нельзя. Для ее использования убедитесь, что клиенты поддерживают файлы cookie.

Примечание.

Некоторые сканирования уязвимостей могут пометить куки-файл привязки для Application Gateway, так как флаги Secure или HttpOnly не установлены. Эти проверки не учитывают, что данные в файле cookie создаются с помощью односторонного хэша. Файл cookie не содержит никаких сведений о пользователе и используется исключительно для маршрутизации.

Обновление браузера Chromium версии 80 ввело правило, согласно которому HTTP cookie без атрибута SameSite должны рассматриваться как SameSite=Lax. Для запросов CORS (совместное использование ресурсов между источниками) если файл cookie должен быть отправлен в стороннем контексте, он должен использовать SameSite=None; Безопасные атрибуты и они должны отправляться только по протоколу HTTPS. В противном случае в сценарии только HTTP браузер не отправляет файлы cookie в стороннем контексте. Цель этого обновления браузера Chrome — повышение безопасности и предотвращение атак путем подделки межсайтовых запросов (CSRF).

Для поддержки этого изменения, начиная с 17 февраля 2020 г., в дополнение к существующему файлу cookie ApplicationGatewayAffinity в Шлюзе приложений Azure (все типы SKU) будет добавлен еще один файл cookie с именем ApplicationGatewayAffinityCORS. Cookie ApplicationGatewayAffinityCORS имеет два новых атрибута ("SameSite=None; Secure"), чтобы сохранять липкие сеансы даже для кросс-доменных запросов.

Имя файла cookie сходства по умолчанию — ApplicationGatewayAffinity , и его можно изменить. Если в вашей сетевой топологии вы развёртываете несколько шлюзов приложений последовательно, необходимо задать уникальные имена файлов cookie для каждого ресурса. Если вы используете настраиваемое имя cookie для привязки, добавляется дополнительный cookie с суффиксом CORS. Например: CustomCookieNameCORS.

Примечание.

Если задан атрибут SameSite=None , то файл cookie также содержит флаг Secure и должен быть отправлен по протоколу HTTPS. Если для CORS требуется сходство сеансов, необходимо перенести рабочую нагрузку на HTTPS. Дополнительные сведения см. в документации по TLS-разгрузке и сквозному шифрованию TLS для шлюза приложений. Ознакомьтесь с общими сведениями о SSL, настройке шлюза приложений с завершением TLS и настройке сквозного TLS.

Сток подключений

Очистка подключений помогает корректно выводить из эксплуатации узлы серверного пула во время запланированных обновлений службы. Он применяется к экземплярам серверной части, которые явно удаляются из пула серверных ресурсов.

Этот параметр можно применить ко всем членам внутреннего пула, включив очистку подключений в параметре серверной части. Это гарантирует, что все экземпляры, проходящие отмену регистрации в серверном пуле, не получают новых запросов или подключений, при этом поддерживаются существующие подключения до истечения заданного времени ожидания. Этот процесс также применяется для подключений WebSocket.

Тип конфигурации Значение
Значение по умолчанию, если функция поэтапного отключения подключений не включена в настройках серверной части 30 секунд
Определяемое пользователем значение при включении очистки подключений в параметре серверной части От 1 до 3600 секунд

Единственным исключением этого процесса являются запросы, связанные с отменой регистрации экземпляров из-за сопоставления сеансов, управляемых шлюзом. Эти запросы продолжают пересылаться экземплярам, проходящим процесс отмены регистрации.

Примечание.

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

Протокол

Шлюз приложений поддерживает http и HTTPS для маршрутизации запросов на внутренние серверы. При выборе HTTP трафик на внутренние серверы незашифрован. Если обмен данными без шифрования неприемлем, выберите HTTPS.

Этот параметр в сочетании с протоколом HTTPS в прослушивателе поддерживает сквозной протокол TLS. Это позволяет безопасно передавать зашифрованные конфиденциальные данные на сервер. Каждый сервер серверной части в серверном пуле с включенным сквозным протоколом TLS должен быть настроен с помощью сертификата, чтобы обеспечить безопасное взаимодействие.

Порт

Этот параметр задает порт, в котором серверные серверы прослушивают трафик из шлюза приложений. Можно настроить порты в диапазоне от 1 до 65535.

Доверенный корневой сертификат

При выборе HTTPS в качестве протокола бекенда шлюз приложений требует доверенного корневого сертификата, чтобы доверять бекенд пулу для сквозного SSL. По умолчанию параметр "Использовать известный сертификат ЦС" имеет значение No. Если вы планируете использовать самозаверяющий сертификат или сертификат, подписанный внутренним центром сертификации, необходимо указать Шлюз приложений соответствующий общедоступный сертификат, используемый серверным пулом. Этот сертификат необходимо загрузить непосредственно в Шлюз приложений в формате .CER.

Если вы планируете использовать сертификат в серверном пуле, подписанном доверенным общедоступным центром сертификации, можно задать для параметра "Использовать известный сертификат ЦС" значение "Да " и пропускать отправку общедоступного сертификата.

Время ожидания запроса

Этот параметр — это количество секунд, в течение которых шлюз приложений ожидает получения ответа от внутреннего сервера.

Переопределить путь backend

Этот параметр позволяет настроить дополнительный пользовательский путь переадресации, который будет применяться при переадресации запроса в серверную часть. Любая часть входящего пути, соответствующая пользовательскому пути в поле Переопределить путь внутреннего сервера, копируется в перенаправленный путь. В следующей таблице показано, как работает эта функция:

  • Когда параметр HTTP прикреплен к базовому правилу маршрутизации запросов:

    Исходный запрос Переопределить путь backend Запрос перенаправлен в серверную часть
    /дом/ /переопределение/ /override/home/
    /home/secondhome/ /переопределение/ /override/home/secondhome/
  • Когда параметр HTTP прикреплен к правилу маршрутизации запросов на основе пути:

    Исходный запрос Правило пути Переопределить путь backend Запрос перенаправлен в серверную часть
    /pathrule/home/ /pathrule* /переопределение/ /override/home/
    /pathrule/home/secondhome/ /pathrule* /переопределение/ /override/home/secondhome/
    /дом/ /pathrule* /переопределение/ /override/home/
    /home/secondhome/ /pathrule* /переопределение/ /override/home/secondhome/
    /pathrule/home/ /pathrule/дом* /переопределение/ /переопределение/
    /pathrule/home/secondhome/ /pathrule/дом* /переопределение/ /override/secondhome/
    /правило_пути/ /правило_пути/ /переопределение/ /переопределение/

Использовать пользовательский датчик

Этот параметр связывает пользовательскую пробу с параметром HTTP. С одним параметром HTTP можно связать только один пользовательский зонд. Если вы явно не ассоциируете пользовательскую пробу, для мониторинга работоспособности серверной части используется проба по умолчанию. Рекомендуется создать пользовательскую пробу для улучшения контроля над мониторингом работоспособности серверных частей.

Примечание.

Пользовательская проба не отслеживает работоспособность внутреннего пула, если только соответствующий параметр HTTP явно не связан с прослушивателем.

Настройка имени узла

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

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

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

Существуют два аспекта настройки HTTP, которые влияют на заголовок HTTP Host, используемый Шлюзом приложений для подключения к серверной части.

  • "Выбор имени узла из серверного адреса"
  • Переопределение имени узла

Выбор имени узла из серверного адреса

Эта возможность динамически задает заголовок Host в запросе на имя хоста пула серверов бэкенда. Она использует IP-адрес или полное доменное имя.

Эта функция помогает, когда доменное имя серверной части отличается от DNS-имени шлюза приложений, а серверная часть полагается на конкретный заголовок узла для разрешения в правильную конечную точку.

Примером является мультитенантные службы в качестве серверной части. Служба приложений — это мультитенантная служба, которая использует общее пространство с одним IP-адресом. Таким образом, доступ к службе приложений возможен только через имена узлов, настроенные в параметрах личного домена.

По умолчанию имя личного домена — example.azurewebsites.net. Чтобы получить доступ к службе приложений с помощью шлюза приложений через имя узла, которое не зарегистрировано в службе приложений или через полное доменное имя шлюза приложений, можно переопределить имя узла в исходном запросе на имя узла службы приложений. Для этого включите настройку выбрать имя узла из адреса серверной части.

Для пользовательского домена, существующее пользовательское DNS-имя которого сопоставляется со службой приложений, рекомендуемая конфигурация не включает выбор имени узла из адреса бэкенда.

Примечание.

Этот параметр не требуется для среды службы приложений, которая является выделенным развертыванием.

Переопределение имени узла

Эта возможность заменяет заголовок host во входящем запросе на шлюзе приложений указанным именем узла.

Например, если www.contoso.com указан в параметре имени узла, исходный запрос * изменяется на *https://appgw.eastus.cloudapp.azure.com/path1https://www.contoso.com/path1, когда запрос пересылается на внутренний сервер.

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