Развертывание маршрутизации запросов приложений в CDN

Вон Йо

Этот раздел документа относится к маршрутизации запросов приложений Майкрософт версии 2 для IIS 7 и выше.

Цель

Чтобы успешно настроить дочерний или пограничный узел кэша и родительский узел кэша в 2-уровневом развертывании иерархии кэша в среде доставки содержимого или пограничной сети кэширования (CDN/ECN). Основное внимание в этом пошаговом руководстве заключается в том, чтобы понять правила перезаписи URL-адресов на узле дочернего или пограничного кэша и на родительском узле кэша. В конечном счете, в этом пошаговом руководстве описаны пошаговые инструкции по настройке следующей конфигурации:

Схема, на которой показан обзор подключения между исходным сервером, родительскими узлами, дочерними узлами и S A N.

Ниже приведены некоторые из основных аспектов этой конфигурации.

  • Поиск источника выполняется дочерним или пограничным узлом кэша.

    • Список клиентов (то есть список допустимых источниковых серверов) управляется в явном виде с помощью карты перезаписи в переписывании URL.
    • Имена узлов, которые не найдены в карте перенаправлений, блокируются.
  • Родительский узел кэша в основном настроен как прямой прокси.

  • SAN настроена для совместного использования узлами дочернего/граничного кэша.

    • Фактически существует 3 уровня кэша:

      1. Дочерний или пограничный узел кэша.
      2. САН.
      3. Родительский узел кэша.

Необходимые условия

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

Если маршрутизация запросов приложений версии 2 не установлена, ее можно скачать по адресу:

  • Маршрутизация запросов приложений Майкрософт версии 2 для IIS 7 (x86) здесь (https://download.microsoft.com/download/4/D/F/4DFDA851-515F-474E-BA7A-5802B3C95101/ARRv2_setup_x86.EXE).
  • Маршрутизация запросов приложений Майкрософт версии 2 для IIS 7 (x64) здесь (https://download.microsoft.com/download/3/4/1/3415F3F9-5698-44FE-A072-D4AF09728390/ARRv2_setup_x64.EXE).

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

Настройка дочернего или периферийного узла кэша

Шаг 1. Настройка кэша дисков

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

Шаг 2. Определение фермы серверов для родительских узлов кэша

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

Шаг 3. Создание дополнительных правил перезаписи URL-адресов для дочернего или пограничного узла кэша

На этом этапе в качестве имени фермы серверов используется myParentCacheNodes , следующее правило перезаписи URL-адресов было записано в файле applicationHost.config, расположенном по адресу %windir%\system32\inetsrv\config\:

<rewrite>
   <globalRules>
      <rule name="ARR_myParentCacheNodes_loadbalance" patternSyntax="Wildcard" stopProcessing="true">
         <match url="*" />
         <action type="Rewrite" url="http://myParentCacheNodes/{R:0}" />
      </rule>
   </globalRules>
</rewrite>

Приведенное выше правило недостаточно для развертывания CDN/ECN, так как узлы кэша многоуровневы, а следующий уровень узлов кэша (то есть родительские узлы кэша) не будет знать, как найти серверы-источники, когда на родительском уровне кэша отсутствует кэш.

В этом пошаговом руководстве проблема решается тем, что дочерний узел кэша сопоставляет с исходным сервером перед перенаправлением запроса на родительский узел кэша. Существует два наиболее распространенных способа сопоставлять серверы-источники на основе URL-адреса, который получает дочерний узел кэша:

  1. Клиент CDN/ECN обозначается как поддомен. В этом случае может быть много привязок имени узла к одному IP-адресу дочернего узла кэша.
    Например, http://customer1.mycnd.net/, http://customer2.mycdn.net/, и т. д.
  2. Клиент CDN/ECN указывается в качестве первого пути в URL-адресе.
    Например, http://static.mycdn.net/customer1/, http://static.mycdn.net/customer2/, и т. д.

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

  1. Определите карты перезаписи URL-адресов, которые можно использовать для поиска имени узла исходного сервера. Запустите диспетчер IIS.

  2. Выберите и разверните корень сервера. Это дочерний (пограничный) узел кэша.

    Снимок экрана, показывающий развернутый дочерний узел кэша.

  3. Дважды щелкните Переписывание URL.

  4. В области "Действия" нажмите кнопку "Просмотреть карты перезаписи".

    Снимок экрана: панель действий с параметром

  5. В области "Действия" нажмите кнопку "Добавить карту перезаписи".

    Снимок экрана панели действий, показывающей параметр

  6. В диалоговом окне "Добавление карты перезаписи " назовите карту перезаписи OriginServers.

    Снимок экрана: диалоговое окно

  7. На карте перезаписи вы явным образом определите сопоставление между именем узла, которое получает дочерний узел кэша, и соответствующими именами узлов источника. В области "Действия" нажмите кнопку "Добавить запись сопоставления...".

    Снимок экрана меню

  8. В диалоговом окне "Добавление записи сопоставления " добавьте имя узла, которое получает дочерний узел кэша и имя узла источника. В приведенном ниже примере узел дочернего кэша ARR получает customer1.mycdn.net в качестве заголовка имени узла. Соответствующий сервер-источник images.customer1.com.

    Снимок экрана: диалоговое окно

  9. Повторите шаг 8 столько раз, сколько необходимо, чтобы включить всех клиентов, которым ваш CDN/ECN предоставляет услуги. Таким образом вы можете управлять явным списком клиентов, чтобы убедиться, что ваша служба предоставляется только вашим клиентам.

  10. Чтобы заблокировать клиентов, которые не находятся в списке карты преобразования, задайте значение по умолчанию для этой карты на #, что является незаконным символом, который не может использоваться в части заголовка имени хоста согласно RFC. В области "Действия" нажмите кнопку "Изменить параметры карты"....

    Снимок экрана: меню

  11. В диалоговом окне Изменить карту перезаписи введите # как значение по умолчанию для этой карты перезаписи.

    Снимок экрана: диалоговое окно

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

  13. В пользовательском интерфейсе перезаписи URL-адреса найдите правило. В этом пошаговом руководстве имя правила должно быть ARR_myParentCacheNodes_loadbalance.

    Снимок экрана: пример параметров правила.

  14. Выберите правило и в области "Действия " нажмите кнопку "Изменить".

  15. Нажмите кнопку "Добавить условия" , чтобы добавить два правила.

  16. Первое правило будет использовать карту перезаписи OriginServers , созданную на шаге 6. Следующее правило будет соответствовать заголовку хоста как ключу для соответствия записям в OriginServers:

    Снимок экрана диалогового окна

  17. Второе правило установит значение по умолчанию как #, когда заголовок узла не соответствует записям в OriginServers. Как отмечалось выше, # недопустимый символ и не может использоваться в качестве имени узла. Следующее правило используется позже для обеспечения того, чтобы только клиенты (представленные именами узлов) в OriginServers обслуживались ARR:

    Снимок экрана: диалоговое окно

  18. Выберите Отслеживать группы захвата в разных условиях.

  19. Чтобы задать значения HTTP_HOST в соответствии с указанными выше условиями, щелкните "Переменные сервера".

  20. Введите следующие значения, чтобы сбросить HTTP_HOST:

    Снимок экрана: диалоговое окно

  21. Нажмите кнопку OK, чтобы сохранить изменения.

  22. В области "Действия" нажмите кнопку "Применить ", чтобы сохранить изменения.

  23. Чтобы убедиться, что были написаны правильные правила, откройте файл applicationHost.config с помощью Блокнота. Файл конфигурации находится в %windir%\system32\inetsrv\config\.

  24. Найдите правило перезаписи URL-адресов для фермы серверов myParentCacheNodes. Это должно выглядеть примерно так:

    <rewrite>
       <globalRules>
          <rule name="ARR_myParentCacheNodes_loadbalance" patternSyntax="Wildcard" stopProcessing="true">
             <match url="*" />
             <conditions trackAllCaptures="true">
                <add input="{OrigServers:{HTTP_HOST}}" pattern="*" />
                <add input="{C:1}" negate="true"  pattern="#" />
             </conditions>
             <serverVariables>
                <set name="HTTP_HOST" value="{C:1}" replace="true" />
             </serverVariables>
             <action type="Rewrite" url="http://myParentCacheNodes/{R:0}" />
          </rule>
       </globalRules>
    </rewrite>
    
  25. Настоятельно рекомендуется. Чтобы заблокировать запросы, которые не соответствуют именам узлов, определенным в приведенной выше карте перезаписи, создайте правило перезаписи URL-адресов по умолчанию, которое отправляет ответ на 400 таких запросов.

    Запустите диспетчер IIS.

  26. Выберите и разверните корень сервера. Это дочерний (пограничный) узел кэша.

    Снимок экрана: развернутый сервер.

  27. Дважды щелкните URL-адрес Переопределение.

  28. В области "Действия" нажмите кнопку "Добавить правила".

    Снимок экрана: меню

  29. В диалоговом окне "Добавление правил" выберите пустое правило.

    Снимок экрана: диалоговое окно

  30. Введите следующие значения и сохраните правило:
    Имя: Не мой клиент
    Используя: Подстановочные знаки
    Узор: *
    Тип действия: Пользовательский ответ
    Код состояния: 400
    Код подстатуса: 0

    Снимок экрана: диалоговое окно переменной правил.

  31. Порядок правил важен. Правила перезаписи URL-адресов обрабатываются сверху вниз. В этом примере, если имя входящего узла соответствует одному из имен узлов, указанных в приведенной выше карте перезаписи, выполняется первое правило , ARR_myParentCacheNodes_Loadbalance. Если имя входящего узла не соответствует ни одному из имен узлов, определенных в приведенной выше карте перезаписи, выполняется второе правило, Не мой клиент.

    Снимок экрана, показывающий 2 правила.

  32. Конфигурация узла дочернего или пограничного кэша завершена.

Чтобы упростить настройку дополнительных дочерних узлов кэша, можно использовать общую конфигурацию, чтобы управлять конфигурацией дочернего узла кэша можно только одним местом. В противном случае указанные выше изменения конфигурации необходимо вносить отдельно на всех дочерних узлах кэша в среде CDN/ECN. Дополнительные сведения о общей конфигурации см. в статье "Общая конфигурация".

Настройка узла родительского кэша

Существует два способа настройки ARR в качестве родительского узла кэша:

  1. Настройте ARR в качестве прокси-сервера пересылки.
  2. Настройте ARR как обратный прокси-сервер, используя карту перезаписи.

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

Шаг 1. Настройка кэша дисков

Настройте и включите кэш дисков, выполнив инструкции по настройке и включению кэша дисков в статье маршрутизации запросов приложений .

Шаг 2. Настройка ARR в качестве прокси-сервера пересылки

  1. Включите ARR в качестве прокси-сервера. Запустите диспетчер IIS.

  2. Эта конфигурация не включает фермы серверов. Все параметры выполняются на уровне сервера.

    Снимок экрана: сервер с развернутыми пунктами. Имя сервера выделено.

  3. Дважды щелкните кэш маршрутизации запросов приложений.

    Снимок экрана: подключения и основные панели. На главной панели показаны значки функции сервера.

  4. В области "Действия" щелкните "Параметры прокси-сервера".

    Снимок экрана: панель действий с параметром

  5. Установите флажок "Включить прокси-сервер " и нажмите кнопку "Применить". Вы только что включили ARR в качестве прокси-сервера на уровне сервера.

  6. Чтобы превратить ARR в прямой прокси-сервер, щелкните узел сервера в области навигации.

    Снимок экрана: параметры навигации.

  7. Дважды щелкните Переписывание URL.

  8. В области действий нажмите кнопку "Добавить правила...".

    Снимок экрана: панель действий с параметром

  9. В диалоговом окне "Добавление правил" выберите пустое правило.

    Снимок экрана: диалоговое окно

  10. Введите следующие значения и сохраните правило:
    Имя: Перенаправление прокси-сервера
    Используя: Подстановочные знаки
    Узор: *
    Условия:
    Входные данные: {HTTP_HOST}
    Тип: Соответствует шаблону
    Узор: *
    Тип действия: Переписать
    Перезапись URL-адреса: http://{C:1}/{R:0}

    Снимок экрана: диалоговое окно с примерами значений.

  11. Конфигурация родительского узла кэша завершена.

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

Сводка

Теперь вы успешно настроили узлы дочернего кэша и родительские узлы кэша в 2-многоуровневой среде CDN/ECN с помощью расширенных правил перезаписи URL-адресов. Чтобы проверить функциональные возможности, можно выполнить шаг 4 и шаг 5 в статье "Настройка и включение кэша дисков" в статье "Маршрутизация запросов приложений ". Если возникают ошибки, включите правила трассировки неудачных запросов, выполнив действия, описанные в статье "Использование правил трассировки неудачных запросов для устранения неполадок маршрутизации запросов приложений ".

Другие пошаговые руководства по ARR версии 2 см. в документах, приведенных в статье " Обзор маршрутизации запросов приложений версии 2 ".