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

По Вон Ю

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

Goal

Для успешной настройки дочернего или пограничного узла кэша и родительского узла кэша в развертывании двухуровневой иерархии кэша в среде сети доставки содержимого или пограничной сети кэширования (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:

    Снимок экрана: диалоговое окно добавления условия с данными исходного сервера с параметром Pattern имеет значение *.

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

    Снимок экрана: диалоговое окно добавления условия с шаблоном, установленным по умолчанию.

  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. Если имя входящего узла не соответствует ни одному из имен узлов, определенных в приведенной выше схеме перезаписи, выполняется второе правило Not my customer.

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

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

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

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

Настроить ARR в качестве родительского узла кэша можно двумя способами.

  1. Настройте ARR в качестве прокси-сервера пересылки.
  2. Настройте ARR в качестве "обратного" прокси-сервера с картой перезаписи.

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

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

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

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

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

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

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

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

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

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

    Снимок экрана: панель

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

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

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

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

  8. В области Действия щелкните Добавить правила....

    Снимок экрана: панель

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

    Снимок экрана: диалоговое окно добавления правил. Выделен значок Пустое правило.

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

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

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

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

Итоги

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

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