Перезапись заголовков HTTP-запроса и ответа с помощью шлюза приложений Azure — портал Azure

В этой статье описывается, как использовать портал Azure для настройки экземпляра SKU шлюза приложений версии 2 для перезаписи заголовков HTTP в запросах и ответах.

Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Подготовка к работе

Для выполнения действий, описанных в этой статье, вам потребуется экземпляр Шлюза приложений версии 2. Перезапись заголовков не поддерживается в SKU версии 1. Если у вас нет SKU версии 2, создайте экземпляр SKU шлюза приложений версии 2 перед началом.

Создание необходимых объектов

Чтобы настроить перезапись HTTP-заголовка, необходимо выполнить следующие действия.

  1. Создайте объекты, необходимые для перезаписи заголовка HTTP:

    • Действие перезаписи: используется для указания полей запроса и заголовка запроса, которые требуется перезаписать, и нового значения для заголовков. Можно связать одно или несколько условий перезаписи с действием по перезаписи.

    • Условие перезаписи: необязательная конфигурация. Условия перезаписи оценивают содержимое запросов и ответов HTTP(S). Действие перезаписи будет выполнено, если запрос или ответ HTTP(S) соответствует условию перезаписи.

      При связывании более одного условия с действием оно выполняется только при соблюдении всех условий. Иными словами, операция является логической операцией "И" (AND).

    • Правило перезаписи: содержит несколько сочетаний "действие перезаписи"/"условие перезаписи".

    • Порядковое значение правила: помогает определить порядок выполнения правил перезаписи. Эта конфигурация полезна при наличии нескольких правил перезаписи в наборе правил перезаписи. Сначала выполняется правило перезаписи с меньшим значением последовательности правил. Если присвоить одно и то же значение последовательности правил двум правилам перезаписи, порядок выполнения не детерминирован.

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

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

Можно создать несколько наборов правил перезаписи заголовков HTTP и применить каждый набор перезаписи к нескольким прослушивателям. Однако вы можете применить только один набор правил перезаписи к конкретному прослушивателю.

Вход в Azure

Войдите на портал Azure с помощью своей учетной записи Azure.

Настройка перезаписи заголовков

В этом примере мы изменим URL-адрес перенаправления, перезаписав заголовок расположения в http-ответе, отправляемом серверным приложением.

  1. Выберите Все ресурсы, а затем выберите свой шлюз приложений.

  2. В левой панели выберите Перезаписи.

  3. Выберите Набор правил перезаписи:

    Add rewrite set

  4. Укажите имя для набора переопределения и свяжите его с правилом маршрутизации:

    • Введите имя набора правил перезаписи в поле Имя.

    • Выберите одно или несколько правил, перечисленных в списке Связанные правила маршрутизации. Можно выбрать только те правила, которые не связаны с другими наборами правил перезаписи. Правила, которые уже связаны с другими наборами правил перезаписи, недоступны.

    • Выберите Далее.

      Add name and association

  5. Создайте правило переопределения:

    • Выберите Добавить правило перезаписи.

      Add rewrite rule

    • Введите имя для правила переопределения в поле Имя правила перезаписи. Введите число в поле Последовательность правил.

      Add rewrite rule name

  6. В этом примере заголовок расположения будет перезаписан только в том случае, если он содержит ссылку на azurewebsites.net. Для этого добавьте условие, определяющее, содержится ли текст "azurewebsites.net" в заголовке расположения в ответе:

    • Выберите Добавить условие, а затем выберите поле, содержащее инструкции Если, чтобы развернуть его.

      Add a condition

    • В списке Тип проверяемой переменной выберите Заголовок HTTP.

    • В списке Тип заголовка выберите Ответ.

    • Так как в этом примере мы оцениваем заголовок расположения, который является общим заголовком, выберите Общий заголовок в разделе Имя заголовка.

    • В списке Общий заголовок выберите Расположение.

    • В разделе С учетом регистра выберите Нет.

    • В списке Оператор выберите равно (=).

    • Введите шаблон регулярного выражения. В этом примере мы будем использовать шаблон (https?):\/\/.*azurewebsites.net(.*)$.

    • Нажмите ОК.

      Configure an If condition

  7. Добавьте действие для перезаписи заголовка расположения:

    • В списке Тип действия выберите Задать.

    • В списке Тип заголовка выберите Ответ.

    • В разделе Имя заголовкавыберите Общий заголовок.

    • В списке Общий заголовок выберите Расположение.

    • Введите значение заголовка. В этом примере мы будем использовать {http_resp_Location_1}://contoso.com{http_resp_Location_2} в качестве значения заголовка. Это значение заменит azurewebsites.net в заголовке расположения на contoso.com.

    • Нажмите ОК.

      Add an action

  8. Выберите Создать, чтобы создать набор перезаписи:

    Select Create

  9. Откроется окно "Набор правил перезаписи". Убедитесь, что созданный набор правил перезаписи находится в списке наборов правил перезаписи:

    Rewrite set view

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

Дополнительные сведения о том, как настроить некоторые распространенные варианты использования, см. в статье Сценарии перезаписи общих заголовков.