Настройка 3-уровня архитектуры развертывания с помощью маршрутизации запросов приложений

Команда IIS

Обзор

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

Схема трех уровней развертывания архитектуры и их подключений друг к другу.

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

Goal

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

Необходимые компоненты

В этом пошаговом руководстве требуются следующие предварительные требования:

  • IIS 7.0 или более поздней версии в Windows 2008 (любой номер SKU) или более поздней версии
  • Модули маршрутизации запросов приложений Майкрософт версии 1 и зависимые модули
  • Не менее двух серверов содержимого с рабочими сайтами и приложениями
  • Статическое содержимое, доступное на сервере маршрутизации запросов приложений

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

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

Шаг 1. Изменение правил перезаписи URL-адресов для фильтрации статических запросов.

На этом шаге правила перезаписи URL-адресов изменяются таким образом, чтобы запросы на определенные расширения или пути обслуживались непосредственно с сервера маршрутизации запросов приложений. Статические запросы можно определить, просматривая расширения файлов, например .jpg или .gif. Если статические ресурсы содержатся в определенных папках, таких как /images/, правила перезаписи URL-адресов могут искать путь в URL-адресе.

В этом пошаговом руководстве вы измените правила перезаписи URL-адресов, чтобы искать расширения .jpg и .css вместе с папкой /images/. Если запрошенный ресурс имеет расширение .jpg или .css, он будет обслуживаться непосредственно с сервера ARR. Аналогичным образом, если запрошенный URL-адрес содержит /images/, этот запрос будет обслуживаться с сервера ARR. Все остальные запросы будут пересылаться на серверы приложений за сервером ARR.

Прежде чем продолжить, убедитесь, что статический контент доступен на сервере ARR для обслуживания. Содержимое может быть доступно локально на сервере ARR или общем содержимом.

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

  1. Запустите диспетчер IIS.
  2. Выберите ферму серверов myServerFarm, созданную в разделе "Определение и настройка группы серверов маршрутизации запросов приложений (ARR).
  3. Показаны следующие значки:
    Снимок экрана: диалоговое окно
  4. Дважды щелкните правила маршрутизации. Введите *.jpg и *.css в запросах со следующими расширениями, не пересылаемые текстовые поля. Несколько расширений разделены запятыми (,). Чтобы сопоставить путь в URL-адресе, введите */image/* в запросах со следующими шаблонами, не перенаправляются текстовые поля. Дикий карта символ (*) используется для сопоставления любого символа до и после пути /image/.
    Снимок экрана: раздел
  5. Чтобы убедиться, что статические образы обслуживаются с сервера ARR, проверьте журналы. По умолчанию журналы находятся в c:\inetpub\logs\LogFiles\. На серверах приложений за сервером ARR не должно быть никаких запросов, ссылающихся на *.jpg, *.css или */images/* в файле журнала.

Чтобы изменить правила перезаписи URL-адресов с помощью командной строки:

  1. Откройте окно командной строки с правами администратора.

  2. Перейдите к %windir%\system32\inetsrv.

  3. Удалите все правила перезаписи URL-адресов, введя следующее:

    appcmd.exe clear config -section:system.webServer/rewrite/globalRules
    

Чтобы изменить правила маршрутизации, чтобы запросы на ресурсы с расширениями *.jpg и *.css и путь, соответствующий */images/*, не перенаправляются на серверы приложений, введите:

  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules 
    /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True']"
     /commit:apphost
    
  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules 
    /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].match.url:"*"  
    /commit:apphost
    
  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules 
    /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions.
    [input='EXT_{URL}',negate='True',pattern='*.jpg']" 
    /commit:apphost
    
  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules 
    /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions.
    [input='EXT_{URL}',negate='True',pattern='*.css']" 
    /commit:apphost
    
  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules 
    /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions.
    [input='{URL}',negate='True',pattern='*/images/*']" 
    /commit:apphost
    
  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules 
    /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.type:"Rewrite" 
    /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.url:"http://myServerFarm1/{R:0}"  
    /commit:apphost
    

Итоги

Теперь вы успешно изменили правила перезаписи URL-адресов с помощью пользовательского интерфейса маршрутизации запросов приложений, чтобы включить сценарий архитектуры развертывания 3 уровня. Дополнительные свойства и возможности маршрутизации запросов приложений см. в пошаговом руководстве по балансировке нагрузки HTTP с помощью маршрутизации запросов приложений (ARR ).

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