Kemp Technologies
+7 (495) 988-06-61
info@kemptech.ru
Главная Дополнительно Технические публикации Переключение потоков контента и изменение заголовков

Переключение потоков контента и изменение заголовков

Использование устройства KEMP LoadMaster

Эндрю Конти, руководитель службы поддержки в Северной Америке, KEMP Technologies

Две менее распространенные функции LoadMaster включают переключение потоков контента и изменение заголовков. Благодаря этим двум особым функциям HTTP/HTTPS, LoadMaster становится важной частью передачи вашего приложения, а не просто устройством балансировки потоков трафика между несколькими серверами приложений.

 

Изначально основная задача устройства LoadMaster заключалась в равномерном распределении трафика к пулу реальных серверов. Однако функция переключения потоков контента позволяет LoadMaster управлять трафиком. Изучение контента каждого запроса позволяет назначать трафик конкретному серверу на основе сравнения с эталоном. Сравнение с эталоном может выполняться по URL-запросу, с помощью любого HTTP-заголовка в запросе или даже исходного IP клиента, делающего запрос. За счет усиления мощности регулярных выражений эталоны могут быть любой сложности, которая необходима для выполнения задачи.

Примеры обычных областей применения переключения потоков контента:

· Переключение URL

В зависимости от дизайна приложения могут использоваться специальные пулы приложений для конкретных директорий или расширений файлов.

· Серверы с конкретным именем хост-узла

Если у организации имеется один общий IP, с которым связаны несколько имен хост-узла, LoadMaster может распределить запросы между разными хост-узлами и соответствующим образом направить их.

· Сайты с конкретным исходным IP-адресом

Открывая внутренние сайты конкретным внешним IP-адресам, вы можете давать доступ к определенному контенту дистрибьюторам, партнерам или удаленным офисам.

Это только несколько примеров того, что можно делать с данным устройством. Версия 6.0-32 LoadMaster полностью поддерживает регулярные выражения стандарта PCRE для ассоциативных правил и изменений заголовка. Это обеспечивает значительный объем контроля над вашими правилами, обеспечивая администраторам необходимую гибкость для работы с любым приложением.

Рассмотрим пример переключения потоков контента. Мы будем создавать правило для прямых запросов от сервера интрасети к конкретному серверу. Чтобы создать правило, перейдите к пункту меню Rules & Checking (Правила и проверка) > Content Rules (Ассоциативные правила).
Content_Switching_and_Header_Modification(1).jpg
На этой странице выберите кнопку Create New (Создать)…, чтобы приступить к созданию правила.

Content_Switching_and_Header_Modification(2).jpg

Пункт Rule Name (Имя правила) мы пометим как "Внутренний". В пункте Rule Type (тип правила) следует оставить Content Matching (Сопоставление контента), а в пункте Match Type (тип сопоставления) - Regular Expression (Регулярное выражение). В пункте Header Field (поле заголовка) поменяем значение на «Host» (Хост-узел), чтобы рассмотреть имя хост-узла, указанное в запросе. В пункте Match String (Цепочка сопоставления) выберем «^internal.example.com$», чтобы с данным правилом сопоставлялось только это имя хост-узла. По окончании правило должно иметь следующий вид:
Content_Switching_and_Header_Modification(3).jpg
После создания правила мы можем перейти к сервису, для которого необходимо переключить контент. В разделе Advanced Settings (Дополнительные параметры) включите переключение потоков контента (Content Switching): нажмите кнопку Enable (Включить).

Content_Switching_and_Header_Modification(4).jpg
После включения вы можете применять правила к своим реальным серверам, нажимая на кнопку под столбцом Rules (Правила).

Content_Switching_and_Header_Modification(5).jpg

Мы будем направлять запросы для «internal.example.com» к первому серверу, а все остальные запросы ко второму серверу. Сначала выберем первый сервер и добавим "Внутреннее" правило. Затем вернемся и выберем второй сервер. В этом случае добавим правило "по умолчанию". Правило по умолчанию будет действовать в отношении всего, что не соответствует никакому правилу. Если правило по умолчанию не применяется, несоответствия будут отклоняться сервисом.

Когда оба правила будут применены, конфигурация сервиса будет завершена. Теперь LoadMaster будет направлять трафик на основе заголовка, указанного клиентом.

Теперь рассмотрим изменение заголовков. Это еще один способ, с помощью которого LoadMaster использует регулярные выражения для оперативного изменения трафика. Это позволяет выполнять очень тонкие настройки и снижать объем изменений, необходимых на реальном сервере для поддержки балансировки нагрузки. С помощью изменения заголовков можно вставлять, удалять или изменять HTTP-заголовки в запросах или ответах, или изменять URL до их передачи на реальные серверы.

Влияние изменений заголовков ограничивается только нашим воображением (и RFC). Вот некоторые практические примеры:

  • Добавление заголовка «Connection: close» (Соединение: закрыть) для принудительного закрытия соединений после отправки ответа.
  • Удаление заголовка «Server» (Сервер) из ответов, чтобы скрыть данные потенциально защищенного сервера.
  • Замена «http» на «https» в поле Location (Адрес), чтобы уменьшить ненужную переадресацию и избежать циклической переадресации.
  • Переадресация запросов для корневого каталога веб-сервера в конкретную директорию. Данный способ обычно используется при развертывании системы Exchange 2010 для направления запросов в директорию OWA.
  • Добавление "безопасного" атрибута в cookie-файлы, отправляемые реальным сервером. Это позволяет избежать отправку уязвимых данных сессии в незашифрованном виде.
  • Удаление заголовка "Via" для предотвращения взаимодействия сервера с proxy-серверами.

Из перечисленных примеров очевидно, что конфигурация может быть выполнена также на самих реальных серверах. Однако конфигурация на устройстве LoadMaster позволяет избежать изменений сервера. Это может сэкономить время и усилия, и упростить настройку за счет того, что все изменения объединены в устройстве LoadMaster, где ими можно легко управлять и резервировать.

При настройке конфигурации LoadMaster для замены текста в заголовке или URL-адресе может быть полезно предусмотреть обратные ссылки в регулярных выражениях, чтобы включить в замещающее значение часть исходного значения или все исходное значение. Это полезно при добавлении текста к началу или приложении текста к существующей строке.

Рассмотрим пример практического применения изменения заголовков. Мы будем работать с примером переадресации корневого каталога веб-сервера в конкретную директорию с помощью правила "Modify URL" (Изменить URL). Чтобы создать правило, перейдите к пункту меню Rules & Checking (Правила и проверка) > Content Rules (Ассоциативные правила).

Content_Switching_and_Header_Modification(6).jpg
На этой странице выберите кнопку Create New (Создать)…, чтобы приступить к созданию правила.

Content_Switching_and_Header_Modification(7).jpg

Затем присвоим правилу имя. В данном примере использовалось название "Redirect_Root". Затем было выбрано "Modify URL" (изменить URL) в качестве Rule Type (Тип правила). Для пункта Match String (Цепочка сопоставления) было указано "^/$" — регулярное выражение, устанавливающее соответствие "/" и только "/", это соответствует запросу, который направляется в том случае, если конкретный URL-адрес не указан. Для пункта Modified URL (Измененный URL) было указано "/owa", но можно указать любой URL. Правило должно иметь следующий вид:

Content_Switching_and_Header_Modification(8).jpg


После создания правила перейдите к сервису, к которому следует применить правило: HTTP или HTTPS. В разделе Advanced Settings (Дополнительные параметры) нажмите на кнопку Show Header Rules (Показать правила заголовка).

Content_Switching_and_Header_Modification(9).jpg


Затем выберите новое правило в разделе Request Rules (Правила запроса) и нажмите кнопку Add (Добавить).

Content_Switching_and_Header_Modification(10).jpg

Если вы получите доступ к виртуальному сервису без какого-либо запроса, вы увидите тот же контент, который был бы при запросе /owa. Только и всего!

Мы будем рады рассмотреть любой другой интересный пример применения переключения потоков контента и изменения заголовков! Мы даже можем включить ваш пример в постоянно расширяющийся справочник по переключению потоков контента и изменению заголовков!

Вы можете направить любую интересную информацию по адресу support@kemptechnologies.com или разместить ее на наших форумах.