Создать правило для HTTP- или HTTPS-трафика
Панель управления
OpenStack CLI
-
В панели управления в верхнем меню нажмите Продукты и выберите Облачные серверы.
-
Перейдите в раздел Балансировщики → вкладка Балансировщики.
-
Откройте страницу балансировщика.
-
Нажмите Создать правило.
-
Выберите протокол приема трафика — HTTP или HTTPS.
-
Для выбранного протокола будет автоматически выбран стандартный порт, на котором балансировщик будет слушать трафик, — измените его при необходимости.
-
Опционально: введите раз решенные CIDR — IP-адреса, с которых балансировщик будет принимать трафик с выбранным протоколом и портом. Можно ввести подсеть в формате CIDR или одиночный IP-адрес с маской
/32
. Если вы оставите поле пустым, балансировщик будет принимать трафик с любых IP-адресов. Вы можете указать разрешенные IP-адреса в правиле после создания балансировщика.Если поле отсутствует, в сети балансировщика выключена фильтрация трафика (port security).
-
Если вы выбрали HTTPS-протокол, укажите сертификат для терминации HTTPS-трафика на балансировщике — выберите сертификат из менеджера секретов или загрузите новый. Подробнее в инструкции TLS(SSL)-сертификаты балансировщика нагрузки.
-
Выберите целевую группу по умолчанию или создайте новую целевую группу с протоколом HTTP. На целевую группу по умолчанию будет направляться трафик, который не подходит под HTTP-политики. Чтобы отбрасывать трафик, не попавший под HTTP-политики, выберите Без целевой группы.
-
Отметьте заголовки HTTP-запросов, которые будут передаваться серверам.
-
Опционально: создайте HTTP-политики:
11.1. Нажмите Добавить новую политику.
11.2. Выберите параметр, по которому будет проверяться запрос:
HOSTNAME
— для проверки доменного имени;PATH
— для проверки пути.
11.3. Выберите тип совпадения с контрольным значением:
EQUAL TO
— совпадает;STARTS WITH
— начинается с;ENDS WITH
— заканчивается на;CONTAINS
— содержит;REGEX
— регулярное выражение.
11.4. Введите контрольное значение для проверки. Если на шаге 11.3 вы выбрали условие
REGEX
, введите регулярное выражение.11.5. Опционально: чтобы добавить в политику еще одно условие, нажмите Новое условие и настройте его. Если в политике несколько условий, то для попадания под политику запрос должен соответствовать каждому из них.
11.6. Укажите, куда нужно перенаправить подходящий запрос:
- Направить на целевую группу — выберите целевую группу или создайте новую с протоколом HTTP;
- Редирект на URL — введите целевой URL, который будет полностью заменять URL запросов, включая протокол, доменное имя, путь и параметры запроса;
- Редирект на префикс URL — введите часть URL, на которую нужно заменять протокол и доменное имя в URL запросов. Например, если ввести
https://example.com/new
, то запрос наhttps://example.com/api
будет переадресован наhttps://example.com/new/api
Чтобы не принимать запросы, подходящие под политику, выберите Отклонить трафик.
11.7. Введите имя политики или оставьте сформированное по умолчанию.
11.8. Нажмите Добавить.
11.9. Опционально: чтобы добавить еще одну политику, нажмите Добавить новую политику и настройте ее.
-
Опционально: измените настройки соединений, для этого откройте блок Расширенные настройки правила и укажите:
- для входящих запросов н а балансировщик — укажите таймаут соединения и максимум соединений;
- для запросов от балансировщика к серверам — укажите таймаут соединения, таймаут неактивности и таймаут ожидания TCP-пакетов.
-
Нажмите Создать.
-
Создайте правило для балансировщика:
openstack loadbalancer listener create \
--name <listener_name> \
--protocol <protocol> \
--protocol-port <port> \
[--allowed-cidr <allowed_cidr>] \
--default-tls-container=<certificate_uuid> \
--default-pool <default_pool> \
<loadbalancer>Укажите:
<listener_name>
— имя правила;<protocol>
— название протокола, HTTP или TERMINATED_HTTPS;<port>
— номер порта;- опционально:
--allowed-cidr <allowed_cidr>
— IP-адрес, с которого разрешено принимать трафик, где<allowed_cidr>
— подсеть в формате CIDR или одиночный IP-адрес с маской/32
. Если нужно указать несколько адресов, каждый укажите в отдельном параметре--allowed-cidr
. Чтобы ограничение работало, в сети балансировщика должна быть включена фильтрация трафика (port security). Вы можете указать разрешенные IP-адреса в правиле после создания балансировщика; --default-tls-container=<certificate_uuid>
— ID TLS(SSL)-сертификата для терминации HTTPS-трафика на балансировщике. Укажите, если выбрали протоколTERMINATED_HTTPS
. Можно скопировать в панели управления: в верхнем меню нажмите Продукты → Менеджер секретов → вкладка Сертификаты → в меню сертификата выберите Скопировать UUID. Подробнее о TLS(SSL)-сертификатах балансировщика нагрузки;- опционально:
--default-pool <default_pool>
— ID или имя целевой группы по умолчанию, куда будет направляться трафик, не попавший под HTTP-политики в правиле. Если не указать параметр, не попавший под политики трафик будет отбрасываться. Список групп можно посмотреть с помощью командыopenstack loadbalancer pool list
. Если у вас нет подходящей целевой группы, создайте ее; <loadbalancer>
— ID или имя балансировщика нагрузки. Список можно посмотреть с помощью командыopenstack loadbalancer list
.
-
Создайте HTTP-политику в правиле:
openstack loadbalancer l7policy create \
--action <action> \
[--redirect-url <url> | --redirect-prefix <prefix_url> | --redirect-pool <pool> ]
--position <position> \
--name <policy_name> \
<listener_name>Укажите:
-
<action>
— действие для балансировки трафика:REDIRECT_TO_URL
— полностью заменять URL запроса, включая протокол, доменное имя, путь и параметры;REDIRECT_PREFIX
— заменять протокол и доменное имя в URL запроса;REDIRECT_TO_POOL
— направлять на целевую группу,REJECT
— отклонять;
-
<policy_name>
— имя L7-политики; -
куда нужно направить трафик:
--redirect-url <url>
— полный URL для перенаправления. Укажите, если выбрано действиеREDIRECT_TO_URL
;--redirect-prefix <prefix_url>
— префикс URL, на который нужно заменить протокол и домен в запросе, напримерhttps://example.com
. Укажите, если выбрано действиеREDIRECT_PREFIX
;--redirect-pool <pool>
— ID или имя целевой группы. Укажите, если выбрано действиеREDIRECT_TO_POOL
. Сп исок можно посмотреть с помощью командыopenstack loadbalancer pool list
. Если у вас еще нет целевой группы, создайте ее.
-
--position <position>
— позиция политики в правиле. Укажите, если в правиле будет несколько политик с одинаковым действием, политика с позицией1
применится первой из них; -
<listener_name>
— имя правила, которое вы создали на шаге 2.
-
-
Создайте условие в HTTP-политике:
openstack loadbalancer l7rule create \
--compare-type <compare_type> \
--type <type> \
--value <value> \
<policy_name>Укажите:
-
<compare_type>
— тип совпадения с контрольным значением:EQUAL TO
— совпадает;STARTS WITH
— начинается с;ENDS WITH
— заканчивается на;CONTAINS
— содержит;REGEX
— регулярное выражение;
-
<type>
— параметр в запросе для проверки:HOST_NAME
,PATH
,COOKIE
,FILE_TYPE
,HEADER
; -
<value>
— контрольное значение; -
<policy_name>
— имя L7-политики, которую вы создали на шаге 3.
-