Обзор #
В этой статье объясняется, как перенести простое правило iRule для F5 BIG-IP, используемое для перенаправлений HTTP, в RELIANOID с использованием встроенных функций перенаправления HTTP/S-сервисов фермы.
Исходное правило iRule перенаправляет пользователей, обращающихся к корневому URI (/) к /myapp путь на том же хосте.
Оригинальное правило F5 iRule #
когда HTTP_REQUEST { если { [HTTP::uri] равно "/"} { HTTP::redirect "https://[HTTP::host]/myapp" } }
Эта логика выполняет следующее:
- проверка URI
- сохранение хозяина
- Перенаправление HTTPS
- операция добавления пути
RELIANOID Миграционный подход #
In RELIANOIDЭта функциональность может быть реализована непосредственно следующим образом:
- HTTP/S-фермерские сервисы
- шаблоны сопоставления хостов
- Правила перенаправления
- Варианты добавления или абсолютного назначения
Это устраняет необходимость в использовании скриптов TCL/iRule.
Рекомендованные RELIANOID Конфигурация #
Цель конфигурации #
Когда клиент получает доступ к:
https://example.com/
Балансировщик нагрузки перенаправляет клиента на:
https://example.com/myapp
Шаг 1: Создайте или отредактируйте службу фермы HTTP/S. #
Перейдите в Фермы > Ферма HTTP/S > Сервисы
Шаг 2: Настройка критериев соответствия #
Используйте конфигурацию сопоставления служб для обнаружения нужного запроса.
Матч хозяев
Настройте Host Шаблон поиска, содержащий точное имя хоста (при необходимости), или пустое поле для поиска с использованием подстановочных символов. Пример: example.com
Соответствие URI
Настройте правило сопоставления URI: /Это гарантирует, что перенаправление будет применяться только к запросам, обращающимся к корневому пути.
Шаг 3: Настройка действия перенаправления #
В разделе «Действия по обслуживанию» выберите Redirect.
Параметры перенаправления #
RELIANOID предоставляет различные методы перенаправления:
- Добавить путьДобавляет путь к существующему хосту.
- Абсолютный URLПеренаправляет на полный URL-адрес.
- Относительное перенаправлениеПеренаправление с использованием относительного URI
Рекомендуемый вариант для этой миграции #
Для этого iRule:
HTTP::redirect "https://[HTTP::host]/myapp"
Рекомендуется RELIANOID Конфигурация следующая:
Тип перенаправления: Append
Направление: /myapp
Это позволяет сохранить:
- Исходное имя хоста
- схема HTTPS
- Домен, запрошенный клиентом
Альтернативный вариант: Абсолютный URL #
В качестве альтернативы вы можете настроить следующее:
Тип перенаправления: Absolute URL
Направление: https://example.com/myapp
Это полезно, когда:
- Перенаправление на другой домен
- Обеспечение соблюдения канонических URL-адресов
- Миграция приложений
Проверка #
После применения настроек проведите тестирование с помощью:
curl -I https://example.com/
Ожидаемый ответ:
HTTP/1.1 301 Moved Permanently Location: https://example.com/myapp
Проверка браузера #
Открыто:
https://example.com/
Ожидаемое поведение:
Браузер автоматически перенаправляет на:
https://example.com/myapp
УСТРАНЕНИЕ НЕПОЛАДОК #
Перенаправление не срабатывает #
Убедитесь, что:
- Правила сопоставления услуг верны.
- URI точно соответствует /
- Шаблон сопоставления хостов действителен.
- Настройки фермы применены.
Переадресация #
Убедитесь, что:
/myappисключен из правила переадресации- Бэкенд-приложение не выполняет дополнительных конфликтующих перенаправлений.
HTTPS не сохраняется #
Убедитесь, что:
- Ферма настроена на использование HTTPS.
- SSL-сертификаты установлены правильно.
- Конфигурация перенаправления сохраняет схему.
Перенаправление применяется ко всем URL-адресам #
Это обычно происходит, если соответствие URI слишком широкое.
Правильная конфигурация должна быть направлена на... / только.
Лучшие практики #
- По возможности отдавайте предпочтение встроенным правилам перенаправления, а не скриптам.
- Используйте режим добавления для перенаправлений приложений на том же хосте.
- Используйте абсолютные перенаправления только при смене домена.
- Проверьте поведение перенаправления как с помощью инструментов браузера, так и с помощью инструментов командной строки.
Резюме #
Правила iRules от F5, выполняющие перенаправления HTTP, можно перенести в RELIANOID Использование стандартных правил перенаправления HTTP/S-сервисов без необходимости написания скриптов.
Такой подход упрощает настройку и повышает удобство сопровождения, сохраняя при этом эквивалентное поведение перенаправления.