Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вон Йо
Обеспечение высокого уровня доступности и масштабируемости:
Маршрутизация запросов приложений (ARR) для IIS 7.0 и более поздних версий и аппаратного балансировщика нагрузки.
| Корпорация Майкрософт | F5 |
|---|---|
| Автор: Вон Йо | Автор: Райан Корок |
| Опубликовано: 13 ноября 2008 г. |
Краткие сведения
В этом документе содержатся инструкции по использованию маршрутизации запросов приложений (ARR) с аппаратным балансировщиком нагрузки для обеспечения высокой доступности и масштабируемости. В этом документе используется балансировщик нагрузки F5 BIG-IP для иллюстрации рабочего взаимодействия между ARR и аппаратными балансировщиками нагрузки.
Обзор
Маршрутизация запросов приложений (ARR) для IIS 7.0 и выше — это модуль маршрутизации на основе прокси-сервера, который перенаправит HTTP-запросы на серверы контента на основе заголовков HTTP, переменных сервера и алгоритмов балансировки нагрузки. Обычное развертывание ARR показано на схеме ниже:
Хотя ARR обеспечивает высокий уровень доступности и масштабируемость для серверов содержимого, общее развертывание не является высокодоступным или масштабируемым, так как:
- ARR — это единственная точка сбоя.
- Масштабируемость серверов содержимого ограничена максимальной емкостью одного сервера ARR.
Чтобы устранить эти проблемы, администраторы могут рассмотреть возможность использования нескольких серверов ARR с аппаратными подсистемами балансировки нагрузки, такими как F5 BIG-IP. ARR можно развернуть в активном/пассивном режиме, чтобы обеспечить высокую доступность, или в активном/активном режиме, чтобы обеспечить и высокую доступность, и масштабируемость. В этом техническом документе описывается, как можно развернуть ARR и F5 BIG-IP, чтобы обеспечить основные сценарии ARR при достижении общей высокой доступности и масштабируемости.
Использование маршрутизации запросов приложений и F5 BIG-IP
ARR создается как модуль на основе IIS и предназначен для принятия решений по маршрутизации на уровне 7 (приложение). Более точно ARR использует другой модуль IIS, перезапись URL-адресов, чтобы проверить входящие заголовки HTTP-запросов и переменные сервера для принятия решений о маршрутизации. Учитывая эту структуру, администраторы могут создавать интеллектуальные правила маршрутизации на основе сведений об уровне приложения, таких как:
- Имя узла (HTTP_HOST): маршрутизация трафика на разные серверы контента на основе имени узла.
- Запрошенный ресурс (URL-адрес): на основе расширений файлов определите, являются ли запрошенные ресурсы статическим содержимым или динамическим содержимым, а также маршрутизировать запросы соответствующим образом.
- Сведения о клиенте (HTTP_USER_AGENT): на основе типа браузера и версии перенаправите запросы на соответствующие серверы содержимого.
- Пользовательские заголовки (устанавливаемые как файлы cookie приложениями): Маршрутизация трафика на основе информации о файлах cookie, устанавливаемых приложениями, таких как предпочтения пользователя или идентификатор пользователя.
Выше приведены лишь некоторые из примеров. Полный список заголовков HTTP и переменных сервера см. в приложении A.
Функциональность уровней 3 и 4 F5 Big-IP дополняет силу ARR в принятии решений по маршрутизации на основе уровня 7, таких как заголовки HTTP и переменные сервера. В то же время ARR не предоставляет отказоустойчивые функции развертывания для себя и должен полагаться на другие дополнительные технологии и решения для обеспечения высокой доступности для уровня ARR, как показано ниже:
Сценарий 1. Маршрутизация на основе HTTP и балансировка нагрузки
Сценарий маршрутизации и балансировки нагрузки на основе HTTP позволяет использовать архитектуру развертывания на уровне 3 уровня, которая включает в себя:
- Уровень 1 (Web): предоставляет двойные цели обработки статического содержимого и маршрутизации и балансировки нагрузки оставшихся динамических запросов на серверы уровня 2.
- Уровень 2 (приложение): обрабатывает динамическое содержимое, использующее бизнес-логику.
- Уровень 3 (Данные): хранит данные.
На следующей схеме показано развертывание 3 уровня:
Хотя в приведенном выше примере показано правило маршрутизации, которое отличает статическое содержимое от динамического содержимого, другой распространенный сценарий — различать запросы презентации от запросов веб-службы.
Вариант 1. Активный или пассивный
В режиме "Активный/Пассивный" обычно есть два сервера ARR, где один сервер обрабатывает запросы, а другой сервер является резервным на случай неисправности. Как отмечалось выше, в то время как эта конфигурация обеспечивает высокую доступность, удаляя единую точку сбоя, это не решение для горизонтального масштабирования, так как совокупная емкость серверов содержимого ограничена максимальной емкостью одного сервера ARR.
В этой настройке, так как два сервера ARR настроены так же, используется общая конфигурация. BIG-IP F5 настраивается таким образом, чтобы он перенаправляет все запросы на активный сервер ARR и направляет только запросы к пассивному серверу ARR при необходимости.
За исключением функции привязки по имени узла в ARR, нет информации о состоянии выполнения, которая должна разделяться между двумя серверами ARR. Таким образом, для этого сценария специальная конфигурация не требуется ни на серверах ARR, ни на F5 BIG-IP. Даже если вы используете функцию сопоставления сервера в ARR, аффинизованные сведения о состоянии будут доступны пассивному серверу через файл cookie в заголовке запроса, когда F5 BIG-IP направляет запросы на бывший пассивный, но теперь активный сервер.
Этот сценарий полностью поддерживается в выпуске ARR версии 1.
Конфигурация ARR
Шаг 1. Включение общей конфигурации на двух серверах ARR.
- Выполните действия, описанные в этом документе, чтобы настроить общую конфигурацию в IIS.
Шаг 2. Настройка 3-уровней архитектуры развертывания с помощью ARR.
Выполните действия, описанные в этом документе, чтобы настроить ARR в архитектуре развертывания 3 уровня.
На высоком уровне приведенный выше документ описывает:
- Как сделать статический контент доступным на сервере ARR.
- Как записывать правила перезаписи URL-адресов для статического содержимого, чтобы они обслуживались непосредственно с сервера ARR.
- Как записывать правила перезаписи URL-адресов для динамического содержимого, чтобы они перенаправляются на серверы приложений.
Конфигурация BIG-IP F5
В этом сценарии вы создадите виртуальный сервер, который балансирует нагрузку на пул двух (или более) серверов ARR. Метод балансировки нагрузки, который вы выбираете, должен отправлять весь трафик на основной сервер ARR, пока он не станет недоступным. На этом этапе BIG-IP LTM должен отправлять весь трафик на вторичный сервер ARR.
Шаг 1. Настройка пула серверов ARR.
- В разделе "Локальный трафик" щелкните "Пулы". Затем нажмите кнопку "Создать", чтобы создать пул.
- Любое уникальное имя будет работать для пула; В примере используется ARR_Pool.
- Для монитора работоспособности можно использовать настраиваемый HTTP-монитор или HTTP-монитор по умолчанию.
- Метод балансировки нагрузки можно оставить равным «Round Robin». В этом сценарии, так как существует только активный и пассивный сервер ARR, балансировка нагрузки не используется.
- Обязательно включите активацию группы приоритетов. Это настраивает BIG-IP для отправки трафика на серверы с наивысшим приоритетом. Если эти серверы недоступны, BIG-IP отправляет трафик на сервер ARR со следующим значением максимального приоритета.
- В этом сценарии сервер ARR в 10.0.0.1 имеет значение приоритета 1, а 10.0.0.2 имеет значение приоритета 2. Весь трафик будет отправлен в 10.0.0.2, пока он не исчезнет, а затем трафик будет отправлен в 10.0.0.1.
Шаг 2. Настройка пула серверов ARR.
- В разделе "Локальный трафик" щелкните "Виртуальные серверы". Затем нажмите кнопку "Создать", чтобы создать виртуальный сервер.
- Любое уникальное имя будет работать для виртуального сервера; В примере используется ARR_VS.
- Для назначения можно использовать IP-адрес, на который пользователи будут указывать свои браузеры. В этом примере мы используем 65.197.145.23. Для порта сервиса мы используем "80".
- В разделе "Тип виртуального сервера" есть несколько вариантов. Так как вы зависите от ARR для маршрутизации, вы можете выбрать HTTP для высокой производительности, который предназначен для оптимальной производительности.
- Для пула по умолчанию выберите пул, созданный на шаге 1.
- На этом этапе вы сможете подключиться к этому виртуальному серверу, который будет отправлен на соответствующий сервер ARR.
Вариант 2. Активный или активный
В режиме Active/Active можно использовать два или более серверов ARR. Эта конфигурация обеспечивает как высокий уровень доступности, так и масштабируемость, в отличие от режима "Активный/пассивный", который обеспечивает только высокую доступность. Как отмечалось ранее, так как несколько серверов ARR настроены одинаково, используется общая конфигурация. BIG-IP F5 настраивается для балансировки нагрузки входящих запросов ко всем доступным и работоспособным серверам ARR, которые в свою очередь перенаправляют запросы на серверы содержимого. Независимо от того, используется ли функция привязки сервера на F5 BIG-IP или нет, на серверах ARR не требуется специальная конфигурация. Для одной из них серверы ARR используют одну общую конфигурацию, чтобы они были настроены так же. Во-вторых, так как ARR использует файл cookie клиента для хранения сведений о сопоставлении сервера для собственного использования, эти сведения доступны для каждого запроса и поэтому доступны на серверах ARR. Этот сценарий полностью поддерживается в выпуске ARR версии 1.
Конфигурация ARR
Конфигурация ARR для Active/Active идентична конфигурации Active/Passive. Основное различие заключается в настройке F5.
Шаг 1. Включение общей конфигурации на двух серверах ARR.
- Выполните действия, описанные в этом документе, чтобы настроить общую конфигурацию в IIS.
Шаг 2. Настройка 3-уровней архитектуры развертывания с помощью ARR.
Выполните действия, описанные в этом документе, чтобы настроить ARR в архитектуре развертывания 3 уровня.
На высоком уровне приведенный выше документ описывает:
- Как сделать статический контент доступным на сервере ARR.
- Как записывать правила перезаписи URL-адресов для статического содержимого, чтобы они обслуживались непосредственно с сервера ARR.
- Как записывать правила перезаписи URL-адресов для динамического содержимого, чтобы они перенаправляются на серверы приложений.
Конфигурация BIG-IP F5
В этом сценарии все доступные серверы ARR считаются активными и кандидатами для балансировки нагрузки трафика. Используйте BIG-IP LTM, чтобы оценить работоспособность и производительность фронтендов ARR, а также направить трафик к наиболее эффективным.
Шаг 1. Настройка пула серверов ARR.
- В разделе "Локальный трафик" щелкните "Пулы". Затем нажмите кнопку "Создать", чтобы создать пул.
- Любое уникальное имя будет работать для пула; В примерах используется ARR_Pool. — Для монитора работоспособности можно использовать пользовательский HTTP-монитор или HTTP-монитор по умолчанию. — Так как у вас есть несколько серверов ARR для распределения трафика, необходимо выбрать метод балансировки нагрузки, который лучше всего подходит для ваших потребностей. Если все серверы ARR имеют аналогичные аппаратные характеристики, метод динамической балансировки нагрузки, например самый быстрый, наблюдаемый или прогнозный, даст вам распределение на основе производительности.
Шаг 2. Настройка виртуального сервера.
- В разделе "Локальный трафик" щелкните "Виртуальные серверы". Затем нажмите кнопку "Создать", чтобы создать виртуальный сервер.
- Любое уникальное имя будет работать для виртуального сервера; В примере используется ARR_VS. — Для назначения можно использовать IP-адрес, на который пользователи будут указывать свои браузеры. В этом примере мы используем 65.197.145.23. Для служебного порта мы используем "80". — В разделе "Тип виртуального сервера" есть несколько вариантов. Так как вы зависите от ARR для маршрутизации, вы можете выбрать HTTP для высокой производительности, который предназначен для оптимальной производительности. — Для пула по умолчанию выберите пул, созданный на шаге 1.
Сценарий 2. Совместное размещение с использованием привязки к имени хоста
Этот сценарий использует функцию сопоставления имен узла в ARR, чтобы включить развертывание общего размещения следующим образом:
- Уменьшите управление и обслуживание вручную, связанное с традиционным развертыванием общего размещения.
- Максимально увеличить существующие ресурсы сервера, обеспечивая равномерное использование всех ресурсов сервера.
- Легко масштабировать среду.
- Создание бизнес-возможностей для продажи дополнительной емкости.
Дополнительные сведения о общем размещении и ARR см. в этом документе.
На следующей схеме показана общая среда размещения с помощью ARR: 
Вариант 1. Активный или пассивный
Как отмечалось ранее, в Active/Passive режиме обычно есть два сервера ARR, в которых один сервер обрабатывает запросы, в то время как другой является резервным сервером. Хотя эта конфигурация обеспечивает высокий уровень доступности, удалив единую точку сбоя, это не решение горизонтального масштабирования, так как совокупная емкость серверов содержимого ограничена максимальной емкостью одного сервера ARR.
В этой настройке, так как два сервера ARR настроены так же, используется общая конфигурация. BIG-IP F5 настраивается для маршрутизации всех запросов на активный сервер ARR и при необходимости направляет только запросы на пассивный сервер ARR.
Функция сопоставления имен узла в ARR сравнит запросы к конкретному серверу (или группе серверов в RC) на основе имени узла. Сведения о состоянии выполнения аффинированного сопоставления между именами узлов и серверами содержимого сохраняются в памяти в экземпляре сервера ARR. В выпуске ARR версии 1 ARR использует внешний кэш Майкрософт для IIS для совместного использования и поддержания этого состояния среды выполнения между несколькими серверами ARR. Дополнительные сведения об этом сценарии доступны в этом документе.
Этот сценарий полностью поддерживается в выпуске ARR версии 1.
Конфигурация ARR
Шаг 1. Включение общей конфигурации на двух серверах ARR.
- Выполните действия, описанные в этом документе, чтобы настроить общую конфигурацию в IIS.
Шаг 2. Настройка 3-уровней архитектуры развертывания с помощью ARR.
Выполните действия, описанные в этом документе, чтобы настроить ARR в архитектуре развертывания 3 уровня.
На высоком уровне приведенный выше документ описывает:
- Как сделать статический контент доступным на сервере ARR.
- Как записывать правила перезаписи URL-адресов для статического содержимого, чтобы они обслуживались непосредственно с сервера ARR.
- Как записывать правила перезаписи URL-адресов для динамического содержимого, чтобы они перенаправляются на серверы приложений.
Шаг 3. Включение и настройка внешнего кэша.
- Выполните действия, описанные в этом документе, чтобы включить и настроить внешний кэш для использования с ARR.
Конфигурация BIG-IP F5
В этом сценарии вы создадите виртуальный сервер, который балансирует нагрузку на пул двух (или более) серверов ARR. Метод балансировки нагрузки, который вы выбираете, должен отправлять весь трафик на основной сервер ARR, пока он не станет недоступным. На этом этапе BIG-IP LTM должен отправлять весь трафик на вторичный сервер ARR.
Шаг 1. Настройка пула серверов ARR.
- В разделе "Локальный трафик" щелкните "Пулы". Затем нажмите кнопку "Создать", чтобы создать пул.
- Любое уникальное имя будет работать для пула; В примере используется ARR_Pool. — Для монитора работоспособности можно использовать пользовательский HTTP-монитор или HTTP-монитор по умолчанию. — Метод балансировки нагрузки можно оставить равным Round Robin. В этом сценарии, так как существует только активный и пассивный сервер ARR, балансировка нагрузки не используется. — Обязательно включите активацию группы приоритетов. Это настраивает BIG-IP для отправки трафика на серверы с наивысшим приоритетом. Если эти серверы недоступны, BIG-IP отправляет трафик на сервер ARR со следующим значением максимального приоритета. — В этом сценарии сервер ARR в 10.0.0.1 имеет значение приоритета 1, а 10.0.0.2 имеет значение приоритета 2. Весь трафик будет отправлен в 10.0.0.2, пока он не исчезнет, а затем трафик будет отправлен в 10.0.0.1.
Шаг 2. Настройка виртуального сервера.
- В разделе "Локальный трафик" щелкните "Виртуальные серверы". Затем нажмите кнопку "Создать", чтобы создать виртуальный сервер.
- Любое уникальное имя будет работать для виртуального сервера; В примере используется ARR_VS. — Для назначения можно использовать IP-адрес, на который пользователи будут указывать свои браузеры. В этом случае мы используем. Для служебного порта мы используем "80". — В разделе "Тип виртуального сервера" есть несколько вариантов. Так как вы зависите от ARR для маршрутизации, вы можете выбрать HTTP для высокой производительности, который предназначен для оптимальной производительности. — Для пула по умолчанию выберите пул, созданный на шаге 1.
- На этом этапе вы сможете подключиться к этому виртуальному серверу, который будет отправлен на соответствующий сервер ARR.
Вариант 2. Активный или активный в ARR
В режиме Active/Active можно использовать два или более серверов ARR. Эта конфигурация обеспечивает как высокий уровень доступности, так и масштабируемость, в отличие от режима "Активный/пассивный", который обеспечивает только высокую доступность. Так как несколько серверов ARR настроены одинаково, используется общая конфигурация. BIG-IP F5 настраивается для балансировки нагрузки входящих запросов ко всем доступным и работоспособным серверам ARR, которые в свою очередь перенаправляют запросы на серверы содержимого.
Как отмечалось ранее, информация о состоянии во время выполнения сопоставления между именами узлов и серверами содержимого хранится в памяти экземпляра сервера ARR. Для совместного использования этих сведений между несколькими серверами ARR используется внешний кэш Майкрософт для IIS. Дополнительные сведения о внешнем кэше см. в этом документе.
Конфигурация ARR
Конфигурация ARR для Active/Active идентична конфигурации Active/Passive. Основное различие заключается в настройке F5.
Шаг 1. Включение общей конфигурации на двух серверах ARR.
- Выполните действия, описанные в этом документе, чтобы настроить общую конфигурацию в IIS.
Шаг 2. Настройка 3-уровней архитектуры развертывания с помощью ARR.
Выполните действия, описанные в этом документе, чтобы настроить ARR в архитектуре развертывания 3 уровня.
На высоком уровне приведенный выше документ описывает:
- Как сделать статический контент доступным на сервере ARR.
- Как записывать правила перезаписи URL-адресов для статического содержимого, чтобы они обслуживались непосредственно с сервера ARR.
- Как записывать правила перезаписи URL-адресов для динамического содержимого, чтобы они перенаправляются на серверы приложений.
Шаг 3. Включение и настройка внешнего кэша.
- Выполните действия, описанные в этом документе, чтобы включить и настроить внешний кэш для использования с ARR.
Конфигурация BIG-IP F5
В этом сценарии все доступные серверы ARR считаются активными и кандидатами для балансировки нагрузки трафика. Используйте BIG-IP LTM, чтобы оценить работоспособность и производительность фронтендов ARR, а также направить трафик к наиболее эффективным.
Шаг 1. Настройка пула серверов ARR.
- В разделе "Локальный трафик" щелкните "Пулы". Затем нажмите кнопку "Создать", чтобы создать пул.
- Любое уникальное имя будет работать для пула; В примере используется ARR_Pool. — Для монитора работоспособности можно использовать пользовательский HTTP-монитор или HTTP-монитор по умолчанию. — Так как у вас есть несколько серверов ARR для распределения трафика, необходимо выбрать метод балансировки нагрузки, который лучше всего подходит для ваших потребностей. Если все серверы ARR имеют аналогичные аппаратные характеристики, метод динамической балансировки нагрузки, например самый быстрый, наблюдаемый или прогнозный, даст вам распределение на основе производительности.
Шаг 2. Настройка виртуального сервера.
- В разделе "Локальный трафик" щелкните "Виртуальные серверы". Затем нажмите кнопку "Создать", чтобы создать виртуальный сервер.
- Любое уникальное имя будет работать для виртуального сервера; В примере используется ARR_VS. — Для назначения можно использовать IP-адрес, на который пользователи будут указывать свои браузеры. В этом случае мы используем. Для служебного порта мы используем "80". — В разделе "Тип виртуального сервера" есть несколько вариантов. Так как вы зависите от ARR для маршрутизации, вы можете выбрать HTTP для высокой производительности, который предназначен для оптимальной производительности. — Для пула по умолчанию выберите пул, созданный на шаге 1.
Сводка
В этом техническом документе рассматриваются два основных сценария ARR для обеспечения высокой доступности и масштабируемости путем развертывания нескольких серверов ARR и использования F5 BIG-IP.
Приложение
Приложение A. Все доступные заголовки HTTP и переменные сервера для написания правил принятия решений о маршрутизации.
| ALL_HTTP | ALL_RAW | APPL_MD_PATH |
|---|---|---|
| APPL_PHYSICAL_PATH | CERT_COOKIE | CERT_FLAGS |
| CERT_ISSUER | CERT_KEYSIZE | CERT_SECRETKEYSIZE |
| CERT_SERIALNUMBER | CERT_SERVER_ISSUER | CERT_SERVER_SUBJECT |
| ТЕМА_СЕРТИФИКАТА | CONTENT_LENGTH | CONTENT_TYPE |
| DOCUMENT_ROOT | GATEWAY_INTERFACE | HTTP_ACCEPT |
| HTTP_ACCEPT_ENCODING | HTTP_ACCEPT_LANGUAGE | HTTP_CONNECTION |
| HTTP_CONTENT_LENGTH | HTTP_HOST | HTTP_IF_MODIFIED_SINCE |
| HTTP_IF_NONE_MATCH | HTTP_REFERER | HTTP_UA_CPU |
| HTTP_USER_AGENT | HTTPS | HTTPS_KEYSIZE |
| HTTPS_SECRETKEYSIZE | HTTPS_SERVER_ISSUER | HTTPS_SERVER_SUBJECT |
| INSTANCE_ID | INSTANCE_META_PATH | LOCAL_ADDR |
| PATH_INFO | PATH_TRANSLATED | QUERY_STRING (Строка_запроса) |
| REMOTE_ADDR | REMOTE_HOST | REMOTE_PORT |
| REMOTE_USER (удаленный_пользователь) | REQUEST_FILENAME | REQUEST_METHOD |
| REQUEST_URI | SCRIPT_FILENAME | SCRIPT_NAME |
| SERVER_ADDR | SERVER_NAME | SERVER_PORT |
| ЗАЩИЩЕННЫЙ ПОРТ СЕРВЕРА | SERVER_PROTOCOL | SERVER_SOFTWARE |
| URL |