Создать правило для HTTP- или HTTPS-трафика
Панель управления
OpenStack CLI
-
В панели управления перейдите в раздел Облачная платформа → Балансировщики.
-
Откройте вкладку Балансировщики → страница балансировщика.
-
Нажмите Создать правило.
-
Выберите протокол приема трафика — HTTP или HTTPS.
-
Для выбранного протокола будет автоматически выбран стандартный порт, на котором балансировщик будет слушать трафик, — измените его при необходимости.
-
Если вы выбрали HTTPS-протокол, выберите сертификат для терминации HTTPS-трафика на бала нсировщике — выберите сертификат из менеджера секретов или загрузите новый. Подробнее в инструкции TLS(SSL)-сертификаты балансировщика нагрузки.
Сертификаты с пустым полем
CN
(Common Name) не поддерживаются в балансировщиках нагрузки. -
Выберите целевую группу по умолчанию или создайте новую целевую группу с протоколом HTTP. На целевую группу по умолчанию будет направляться трафик, который не подходит под HTTP-политики. Чтобы отбрасывать трафик, не попавший под HTTP-политики, выберите Без целевой группы.
-
Отметьте заголовки HTTP-запросов, которые будут передаваться серверам.
-
Опционально: создайте HTTP-политики:
9.1. Нажмите Добавить новую политику.
9.2. Выберите параметр, по которому будет проверяться запрос:
HOSTNAME
для доменного имени илиPATH
для проверки пути.9.3. Выберите тип совпадения с контрольным значением:
EQUAL TO
— совпадает;STARTS WITH
— начинается с;ENDS WITH
— заканчивается на;CONTAINS
— содержит;REGEX
— регулярное выражение.
9.4. Введите контрольное значение для проверки. Если на шаге 6 вы выбрали условие
REGEX
, введите регулярное выражение.9.5. Опционально: чтобы добавить в политику еще одно условие, нажмите Новое условие и настройте его. Если в политике несколько условий, то для попадания под политику запрос должен соответствовать каждому из них.
9.6. Укажите, куда нужно перенаправить подходящий запрос:
- Направить на целевую группу — выберите целевую группу или создайте новую с протоколом HTTP;
- Редирект на URL — введите целевой URL, который будет полностью заменять URL запросов, включая протокол, доменное имя, путь и параметры запроса;
- Редирект на префикс URL — введите часть URL, на которую нужно заменять протокол и доменное имя в URL запросов. Например, если ввести
https://example.com/new
, то запрос наhttps://example.com/api
будет переадресован наhttps://example.com/new/api
Чтобы не принимать запросы, подходящие под политику, выберите Отклонить трафик.
9.7. Введите имя политики или оставьте сформированное по умолчанию.
9.8. Нажмите Добавить.
9.9. Опционально: чтобы добавить еще одну политику, нажмите Добавить новую политику и настройте ее.
-
Опционально: измените настройки соединений, для этого откройте блок Расширенные настройки правила и укажите:
- для входящих запросов на балансировщик — укажите таймаут соединения и максимум соединений;
- для запросов от балансировщика к серверам — укажите таймаут соединения, таймаут неактивности и таймаут ожидания TCP-пакетов.
-
Нажмите Создать.
-
Создайте правило для балансировщика:
openstack loadbalancer listener create \
--name <listener_name> \
--protocol <protocol> \
--protocol-port <port> \
--default-tls-container=<certificate_uuid> \
--default-pool <default_pool> \
<loadbalancer>Укажите:
<listener_name>
— имя правила;<protocol>
— название протокола, HTTP или TERMINATED_HTTPS;<port>
— номер порта;--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.
-