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

Команда IIS

Обзор

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

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

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

Цель

Настройка 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, обладающей функцией перезаписи заголовков ответов и текста сущности.