---
title: 'Создать балансировщик нагрузки'
sidebar_label: 'Создать балансировщик нагрузки'
sidebar_position: 3
description: 'Как создать облачный балансировщик нагрузки'
toc_max_heading_level: 2
---

import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {TabItemLabel} from '@selectel/docux/components'
import EditIcon from '@selectel/docux/icons/edit'
import CheckIcon from '@selectel/docux/icons/check'
import MoreVerticalIcon from '@selectel/docux/icons/more-vertical'
import Formbricks from '@theme/MDXComponents/Formbricks'

# Создать балансировщик нагрузки

Если вы создаете балансировщик для работы с кластером Managed Kubernetes, используйте инструкцию [Настроить балансировщик нагрузки в кластере Managed Kubernetes для Ingress](/managed-kubernetes/networks/loadbalancing-with-ingress/load-balancers.mdx) или [Создать и настроить балансировщик нагрузки в кластере Managed Kubernetes для Envoy Gateway](/managed-kubernetes/networks/loadbalancing-with-envoy-gateway/load-balancers-for-envoy-gateway.mdx). Для корректной работы балансировщика в кластере все действия с балансировщиком необходимо выполнять через [kubectl](/managed-kubernetes/clusters/connect-to-cluster.mdx).

<Tabs queryString="create-load-balancer">
  <TabItem value="panel" default>
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

    1. [Выберите конфигурацию и сеть](#choose-configuration-and-network).
    2. [Создайте целевую группу](#create-target-group).
    3. [Создайте правила и HTTP-политики](#create-rules-and-http-politics).

    ### 1. Выбрать конфигурацию и сеть \{#choose-configuration-and-network}

    :::warning

    В подсети балансировщика всегда должен быть свободный IP-адрес для автоматического пересоздания [портов балансировщика](/cloud-servers/load-balancers/about-load-balancers/#balancer-ports) в случае неполадок — один для балансировщика без резервирования, два для балансировщика с резервированием. Если свободного IP-адреса не будет, балансировщик перейдет в статус `ERROR`.<br />Если балансировщик и серверы будут размещаться в одной подсети, ее размер должен быть не менее `/28`.

    :::

    1. В [панели управления](https://my.selectel.ru/vpc/default/lbaas/load-balancers/) в верхнем меню нажмите **Продукты** и выберите **Облачные серверы**.

    2. Перейдите в раздел **Балансировщики** → вкладка **Балансировщики**.

    3. Нажмите **Создать балансировщик**.

    4. Выберите [локацию](/infrastructure/locations.mdx), в которой будет создан балансировщик.

    5. Выберите [конфигурацию](/cloud-servers/load-balancers/about-load-balancers.mdx#balancer-types) в зависимости от нагрузки на проект.

    6. Введите имя балансировщика.

    7. Опционально: введите комментарий — любую дополнительную информацию о балансировщике, она будет отображаться только в панели управления.

    8. Опционально: чтобы иметь доступ к [логам балансировщика](/cloud-servers/load-balancers/manage/logs.mdx), включите логирование. Логирование использует часть вычислительных ресурсов балансировщика.

       8.1. Отметьте чекбокс **Собирать технические логи балансировщика**.

       8.2. Выберите группу логов или создайте новую группу.

       8.3. Если вы выбрали новую группу, введите ее имя.

    9. Выберите подсеть:

       * приватная подсеть — мы рекомендуем этот вариант. Балансировка трафика будет производиться только внутри подсети. Можно подключить [публичный плавающий IP-адрес](/cloud-servers/cloud-networks/public-floating-ip-addresses.mdx) к приватному адресу — балансировщик будет доступен из интернета через NAT;
       * публичная подсеть — балансировщик будет доступен из интернета и сможет проксировать запросы из публичной подсети к облачным серверам в приватной подсети.

    10. Укажите IP-адрес в подсети — свободный адрес, который будет назначен на балансировщик.

    11. Опционально: если на шаге 9 вы выбрали приватную подсеть, подключите публичный плавающий IP-адрес. Если нет свободного IP-адреса, [создайте публичный плавающий IP-адрес](/cloud-servers/cloud-networks/public-floating-ip-addresses.mdx#create-public-floating-ip). Приватная подсеть, в которой вы создаете балансировщик, должна быть [подготовлена для подключения публичного плавающего IP-адреса](/cloud-servers/cloud-networks/public-floating-ip-addresses.mdx#configure-subnet-for-internet-access).

    12. Нажмите **Дальше**.

    ### 2. Создать целевую группу \{#create-target-group}

    1. Откройте вкладку **Серверы**.

    2. Опционально: чтобы изменить имя [целевой группы](/cloud-servers/load-balancers/about-load-balancers.mdx#target-groups), нажмите <EditIcon />, введите имя и нажмите <CheckIcon />.

    3. Выберите протокол назначения трафика, по которому балансировщик будет передавать трафик на целевую группу. Доступны следующие комбинации протоколов для приема трафика на балансировщике и назначения трафика на целевую группу:

       * TCP–TCP — классическая L4-балансировка;
       * TCP–PROXY — информация о клиенте не теряется и передается в отдельном заголовке соединения;
       * UDP–UDP — UDP-протокол быстрее, чем TCP, но менее надежен;
       * HTTP–HTTP — L7-балансировка;
       * HTTPS–HTTP — L7-балансировка с шифрованием и терминацией SSL-сертификата на балансировщике.

    4. Для выбранного протокола будет автоматически выбран стандартный порт — измените его при необходимости. Значение порта будет общим для всех серверов в группе.

    5. Отметьте серверы, которые добавятся в целевую группу.

    6. Укажите настройки для каждого отмеченного сервера:

       6.1. Выберите IP-адрес.

       6.2. Опционально: измените порт.

       6.3. Укажите вес сервера — это пропорциональная мера, обозначает долю запросов, которую обрабатывает сервер. Если значения весов одинаковые, то серверы обслуживают равное количество запросов. Если, например, в группе один сервер с весом «2» и два сервера с весом «1», то первый сервер получит 50% всех запросов, а другие два — по 25%. Максимальное значение веса — 256.

       6.4. Опционально: чтобы направлять трафик на сервер только при недоступности остальных серверов в группе, отметьте чекбокс **Резервный**.

    7. Откройте вкладку **Алгоритм**.

    8. Выберите [алгоритм распределения запросов](/cloud-servers/load-balancers/about-load-balancers.mdx#request-distribution-algorithms) — Round Robin или Least connections.

    9. Опционально: чтобы включить метод [Sticky Sessions](/cloud-servers/load-balancers/about-load-balancers.mdx#sticky-sessions), отметьте чекбокс **Sticky sessions** и выберите идентификатор сессии. Для идентификатора APP-cookie введите имя cookie.

    10. Откройте вкладку **Проверки доступности**.

    11. Выберите тип [проверки доступности](/cloud-servers/load-balancers/about-load-balancers.mdx#availability-checks). После создания группы тип проверки изменить нельзя.

    12. Если выбран тип проверки HTTP, укажите параметры запроса — метод, путь и ожидаемые коды ответа.

    13. Укажите интервал между проверками — интервал в секундах, с которым балансировщик отправляет проверяющие запросы серверам.

    14. Укажите таймаут соединения — максимальное время ожидания ответа в секундах, должно быть меньше интервала между проверками.

    15. Укажите порог успеха — количество успешных обращений подряд, после которых сервер переводится в рабочее состояние.

    16. Укажите порог неуспеха — количество неуспешных обращений подряд, после которых работа сервера приостанавливается.

    17. Опционально: чтобы добавить еще одну целевую группу, нажмите **Добавить целевую группу** и настройте ее.

    18. Нажмите **Дальше**.

    ### 3. Создать правила и HTTP-политики \{#create-rules-and-http-politics}

    1. Выберите [протокол](/cloud-servers/load-balancers/about-load-balancers.mdx#protocols) приема трафика на балансировщике — TCP, UDP, HTTP или HTTPS. Доступен также вариант Prometheus для настройки [мониторинга балансировщика нагрузки](/cloud-servers/load-balancers/manage/monitoring).

    <Tabs queryString="create-rules-and-http-politics">
      <TabItem value="tcp-udp" default>
        <TabItemLabel>
          TCP- или UDP-трафик
        </TabItemLabel>

        2. Для выбранного протокола будет автоматически выбран стандартный порт, на котором балансировщик будет слушать трафик, — измените его при необходимости.

        3. Опционально: введите разрешенные CIDR — IP-адреса, с которых балансировщик будет принимать трафик с выбранным протоколом и портом. Можно ввести подсеть в формате CIDR или одиночный IP-адрес с маской `/32`. Если вы оставите поле пустым, балансировщик будет принимать трафик с любых IP-адресов. Вы можете [указать разрешенные IP-адреса в правиле](/cloud-servers/load-balancers/manage/limit-access-to-balancer.mdx#specify-allowed-cidrs-in-rule) после создания балансировщика.

           Если поле отсутствует, в сети балансировщика выключена [фильтрация трафика (port security)](/cloud-servers/cloud-networks/about-networks.mdx#traffic-filtering-port-security).

        4. Выберите целевую группу. Доступны группы, на которые можно балансировать трафик по выбранному [протоколу](/cloud-servers/load-balancers/about-load-balancers.mdx#protocols) приема трафика.

        5. Опционально: разверните блок **Расширенные настройки правила** и укажите [настройки соединений](/cloud-servers/load-balancers/about-load-balancers.mdx#connection-settings):

           * для входящих запросов на балансировщик — укажите таймаут соединения и максимум соединений;
           * для запросов от балансировщика к серверам — укажите таймаут соединения, таймаут неактивности и таймаут ожидания TCP-пакетов.

        6. Опционально: чтобы добавить еще одно правило, нажмите **Добавить правило** и повторите шаги 1-5. Количество правил не ограничено.

        7. Проверьте итоговую стоимость балансировщика.

        8. Нажмите **Создать балансировщик**.
      </TabItem>

      <TabItem value="http-https" default>
        <TabItemLabel>
          HTTP- или HTTPS-трафик
        </TabItemLabel>

        2. Для выбранного протокола будет автоматически выбран стандартный порт, на котором балансировщик будет слушать трафик, — измените его при необходимости.

        3. Если вы выбрали HTTPS-протокол, выберите сертификат для терминации HTTPS-трафика на балансировщике — выберите сертификат из менеджера секретов или загрузите новый. Подробнее в инструкции [TLS(SSL)-сертификаты балансировщика нагрузки](/cloud-servers/load-balancers/manage/ssl-certificates.mdx).

        4. Опционально: чтобы ограничить доступ к балансировщику, введите разрешенные CIDR — IP-адреса, с которых балансировщик будет принимать трафик с выбранным протоколом и портом. Можно ввести подсеть в формате CIDR или одиночный IP-адрес с маской `/32`. Если вы оставите поле пустым, балансировщик будет принимать трафик с любых IP-адресов. Вы можете [указать разрешенные IP-адреса в правиле](/cloud-servers/load-balancers/manage/limit-access-to-balancer.mdx#specify-allowed-cidrs-in-rule) после создания балансировщика.

           Если поле отсутствует, в сети балансировщика выключена [фильтрация трафика (port security)](/cloud-servers/cloud-networks/about-networks.mdx#traffic-filtering-port-security).

        5. Опционально: отметьте [заголовки HTTP-запросов](/cloud-servers/load-balancers/about-load-balancers.mdx#http-request-headers), которые будут передаваться серверам.

        6. Выберите целевую группу по умолчанию — туда будет направляться трафик, который не попал под [HTTP-политику](/cloud-servers/load-balancers/about-load-balancers.mdx#http-policies).

        7. Создайте [HTTP-политики](/cloud-servers/load-balancers/about-load-balancers.mdx#http-policies).

        8. Опционально: измените [настройки соединений](/cloud-servers/load-balancers/about-load-balancers.mdx#connection-settings), для этого откройте блок **Расширенные настройки правила** и укажите:

           * для входящих запросов на балансировщик — укажите таймаут соединения и максимум соединений;
           * для запросов от балансировщика к серверам — укажите таймаут соединения, таймаут неактивности и таймаут ожидания TCP-пакетов.

        9. Опционально: чтобы добавить еще одно правило, нажмите **Добавить правило** и повторите шаги 1-8. Количество правил не ограничено.

        10. Проверьте итоговую стоимость балансировщика.

        11. Нажмите **Создать балансировщик**.
      </TabItem>
    </Tabs>
  </TabItem>

  <TabItem value="openstack">
    <TabItemLabel>
      OpenStack CLI
    </TabItemLabel>

    1. [Создайте балансировщик](#create-load-balancer).
    2. [Создайте правило, HTTP-политику и целевую группу](#create-rule-policy-and-target-group).

    ### Создать балансировщик \{#create-load-balancer}

    :::warning

    В подсети балансировщика всегда должен быть свободный IP-адрес для автоматического пересоздания [портов балансировщика](/cloud-servers/load-balancers/about-load-balancers/#balancer-ports) в случае неполадок — один для балансировщика без резервирования, два для балансировщика с резервированием. Если свободного IP-адреса не будет, балансировщик перейдет в статус `ERROR`.<br />Если балансировщик и серверы будут размещаться в одной подсети, ее размер должен быть не менее `/28`.

    :::

    1. [Откройте OpenStack CLI](/cloud-servers/tools/openstack-cli/).

    2. Установите компонент Octavia для работы с облачными балансировщиками нагрузки — для совместимости с версией релиза Yoga требуется версия 3.4.0:

       ```bash
       pip3 install python-octaviaclient===3.4.0
       ```

    3. Создайте балансировщик нагрузки:

       ```bash
       openstack loadbalancer create \
         --vip-subnet-id <subnet_uuid> \
         --vip-address <loadbalancer_ip_address> \
         --flavor <flavor> \
         --name <loadbalancer_name>
       ```

       Укажите:

       * `<subnet_uuid>` — ID приватной или публичной подсети, можно посмотреть с помощью команды `openstack subnet list`;
       * `<loadbalancer_ip_address>` — IP-адрес, который выделится для балансировщика нагрузки — один из свободных в подсети;
       * `<flavor>` — ID или имя флейвора. Флейворы соответствуют [типам балансировщика нагрузки](/cloud-servers/load-balancers/about-load-balancers.mdx#balancer-types) и определяют количество vCPU, RAM и количество инстансов балансировщика. Например, `ac18763b-1fc5-457d-9fa7-b0d339ffb336` — ID для создания балансировщика с типом Продвинутый с резервированием в пуле ru-9. Список флейворов можно посмотреть с помощью команды `openstack loadbalancer flavor list -c id -c name` или в таблице [Список флейворов балансировщика нагрузки во всех пулах](/cloud-servers/load-balancers/about-load-balancers.mdx#balancer-flavors-full-list);
       * `<loadbalancer_name>` — имя балансировщика.

    4. Проверьте, что балансировщик находится в [статусах](/cloud-servers/load-balancers/manage/balancer-statuses.mdx) `ONLINE` (параметр `operating_status` в выводе команды) и `ACTIVE` (`provisioning_status`):

       ```bash
       openstack loadbalancer show <loadbalancer>
       ```

       Укажите `<loadbalancer>` — ID или имя балансировщика, список можно посмотреть с помощью команды `openstack loadbalancer list`.

    5. Опционально: если на шаге 3 вы указали приватную подсеть, подключите публичный плавающий IP-адрес к балансировщику:

       ```bash
       openstack floating ip set --port <loadbalancer_port_uuid> <floating_ip>
       ```

       Укажите:

       * `<loadbalancer_port_uuid>` — ID порта балансировщика, можно посмотреть с помощью команды `openstack loadbalancer show <loadbalancer>`, значение `vip_port_id`;
       * `<floating_ip>` — публичный IP-адрес.

    ### Создать правило, HTTP-политику и целевую группу \{#create-rule-policy-and-target-group}

    <Tabs queryString="create-rule-policy-and-target-group">
      <TabItem value="tcp-udp">
        <TabItemLabel>
          Для TCP- или UDP-трафика
        </TabItemLabel>

        1. Создайте [правило](/cloud-servers/load-balancers/about-load-balancers.mdx#rules):

           ```bash
           openstack loadbalancer listener create \
             --name <listener_name> \
             --protocol <protocol> \
             --protocol-port <port> \
             [--allowed-cidr <allowed_cidr>] \
             <loadbalancer>
           ```

           Укажите:

           * `<listener_name>` — имя правила;
           * `<protocol>` — название [протокола](/cloud-servers/load-balancers/about-load-balancers.mdx#protocols): `TCP` или `UDP`;
           * `<port>` — номер порта на балансировщике;
           * опционально: `--allowed-cidr <allowed_cidr>` — IP-адрес, с которого разрешено принимать трафик, где `<allowed_cidr>` — подсеть в формате CIDR или одиночный IP-адрес с маской `/32`. Если нужно указать несколько адресов, каждый укажите в отдельном параметре `--allowed-cidr`. Чтобы ограничение работало, в сети балансировщика должна быть включена [фильтрация трафика (port security)](/cloud-servers/cloud-networks/about-networks.mdx#traffic-filtering-port-security). Вы можете [указать разрешенные IP-адреса в правиле](/cloud-servers/load-balancers/manage/limit-access-to-balancer.mdx#specify-allowed-cidrs-in-rule) после создания балансировщика;
           * `<loadbalancer>` — ID или имя балансировщика нагрузки. Список можно посмотреть с помощью команды `openstack loadbalancer list`.

        2. Создайте [целевую группу](/cloud-servers/load-balancers/about-load-balancers.mdx#target-groups):

           ```bash
           openstack loadbalancer pool create \
             --name <pool_name> \
             --lb-algorithm <algorithm> \
             --listener <listener_name> \
             --protocol <protocol>
           ```

           Укажите:

           * `<pool_name>` — имя целевой группы;
           * `<algorithm>` — название [алгоритма](/cloud-servers/load-balancers/about-load-balancers.mdx#request-distribution-algorithms): `ROUND_ROBIN` или `LEAST_CONNECTIONS`;
           * `<listener_name>` — имя правила, которое вы создали на шаге 1;
           * `<protocol>` — название [протокола](/cloud-servers/load-balancers/about-load-balancers.mdx#protocols): `TCP`, `UDP`, `PROXY`.

        3. Добавьте сервер в целевую группу:

           ```bash
           openstack loadbalancer member create \
             --subnet-id <subnet_uuid> \
             --address <server_ip_address> \
             --protocol-port <port> \
             <pool_name>
           ```

           Укажите:

           * `<subnet_uuid>` — ID приватной или публичной подсети сервера, можно посмотреть с помощью команды `openstack subnet list`;
           * `<server_ip_address>` — IP-адрес сервера из указанной подсети;
           * `<port>` — номер порта на сервере;
           * `<pool_name>` — имя целевой группы, которую вы создали на шаге 2.

        4. Опционально: создайте [проверку доступности](/cloud-servers/load-balancers/about-load-balancers.mdx#availability-checks) для целевой группы:

           ```bash
           openstack loadbalancer healthmonitor create \
             --delay <delay> \
             --timeout <timeout> \
             --max-retries <max_retries> \
             --max-retries-down <max_retries_down> \
             --type <type> \
             --http-method <http_method> \
             --url-path <url_path> \
             --expected-codes <codes> \
             <pool_name>
           ```

           Укажите:

           * `<delay>` — интервал между проверками в секундах;

           * `<timeout>` — максимальное время ожидания ответа в секундах;

           * `<max_retries>` — количество успешных обращений подряд, после которых сервер переводится в рабочее состояние;

           * `<max_retries_down>` — количество неуспешных обращений подряд, после которых работа сервера приостанавливается;

           * `<type>` — тип проверки. Доступные типы зависят от протокола целевой группы, который вы указали на шаге 2:

             * для протокола `TCP` — тип `PING`, `TCP`;
             * для протокола `UDP` — тип `UDP_CONNECT`, `PING`;
             * для протокола `PROXY` — тип `TLS_HELLO`, `HTTP`, `PING`, `TCP`;

           * параметры HTTP-запроса, если выбрали тип проверки `HTTP`:

             * `--http-method <http_method>` — метод проверки: `GET`, `POST`, `DELETE`, `PUT`, `HEAD`, `OPTIONS`, `PATCH`, `CONNECT`, `TRACE`;
             * `--url-path <url_path>` — путь запроса без доменного имени;
             * `--expected-codes <codes>` — ожидаемые коды ответа через запятую;
             * `<pool_name>` — имя целевой группы, которую вы создали на шаге 2.
      </TabItem>

      <TabItem value="http-https">
        <TabItemLabel>
          Для HTTP- или HTTPS-трафика
        </TabItemLabel>

        1. Создайте [целевую группу](/cloud-servers/load-balancers/about-load-balancers.mdx#target-groups), которая будет служить группой по умолчанию — туда будет направляться трафик, не попавший под [HTTP-политики](/cloud-servers/load-balancers/about-load-balancers.mdx#http-policies) в правиле:

           ```bash
           openstack loadbalancer pool create \
             --name <pool_name> \
             --lb-algorithm <algorithm> \
             --protocol HTTP \
             --loadbalancer <loadbalancer>
           ```

           Укажите:

           * `<pool_name>` — имя целевой группы;
           * `<algorithm>` — название [алгоритма](/cloud-servers/load-balancers/about-load-balancers.mdx#request-distribution-algorithms): `ROUND_ROBIN` или `LEAST_CONNECTIONS`;
           * `<loadbalancer>` — ID или имя балансировщика, который вы [создали ранее](#create-load-balancer), список можно посмотреть с помощью команды `openstack loadbalancer list`.

        2. Добавьте сервер в целевую группу:

           ```bash
           openstack loadbalancer member create \
             --subnet-id <subnet_uuid> \
             --address <server_ip_address> \
             --protocol-port <port> \
             <pool_name>
           ```

           Укажите:

           * `<subnet_uuid>` — ID приватной или публичной подсети сервера, можно посмотреть с помощью команды `openstack subnet list`;
           * `<server_ip_address>` — IP-адрес сервера из указанной подсети;
           * `<port>` — номер порта на сервере;
           * `<pool_name>` — имя целевой группы, которую вы создали на шаге 1.

        3. Опционально: создайте [проверку доступности](/cloud-servers/load-balancers/about-load-balancers.mdx#availability-checks) для целевой группы:

           ```bash
           openstack loadbalancer healthmonitor create \
             --delay <delay> \
             --timeout <timeout> \
             --max-retries <max_retries> \
             --max-retries-down <max_retries_down> \
             --type <type> \
             --http-method <http_method> \
             --url-path <url_path> \
             --expected-codes <codes> \
             <pool_name>
           ```

           Укажите:

           * `<delay>` — интервал между проверками в секундах;
           * `<timeout>` — максимальное время ожидания ответа в секундах;
           * `<max_retries>` — количество успешных обращений подряд, после которых сервер переводится в рабочее состояние;
           * `<max_retries_down>` — количество неуспешных обращений подряд, после которых работа сервера приостанавливается;
           * `<type>` — тип проверки: `HTTP`, `PING`, `TCP`;
           * параметры HTTP-запроса, если выбрали тип проверки `HTTP`:

             * `--http-method <http_method>` — метод проверки: `GET`, `POST`, `DELETE`, `PUT`, `HEAD`, `OPTIONS`, `PATCH`, `CONNECT`, `TRACE`;
             * `--url-path <url_path>` — путь запроса без доменного имени;
             * `--expected-codes <codes>` — ожидаемые коды ответа через запятую;
             * `<pool_name>` — имя целевой группы, которую вы создали на шаге 1.

        4. Создайте [правило](/cloud-servers/load-balancers/about-load-balancers.mdx#rules):

           ```bash
           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>` — название [протокола](/cloud-servers/load-balancers/about-load-balancers.mdx#protocols): `HTTP` или `TERMINATED_HTTPS`;
           * `<port>` — номер порта на балансировщике;
           * `--default-tls-container=<certificate_uuid>` — ID TLS(SSL)-сертификата для терминации HTTPS-трафика на балансировщике. Укажите, если выбрали протокол `TERMINATED_HTTPS`. Можно скопировать в [панели управления](https://my.selectel.ru/certificates/): в верхнем меню нажмите **Продукты** → **Менеджер сертификатов** → в меню <MoreVerticalIcon /> сертификата выберите **Скопировать UUID**. Подробнее о [TLS(SSL)-сертификатах балансировщика нагрузки](/cloud-servers/load-balancers/manage/ssl-certificates.mdx);
           * `<default_pool>` —  ID или имя целевой группы по умолчанию, которую вы создали на шаге 1, список можно посмотреть с помощью команды `openstack loadbalancer pool list`;
           * опционально: `--allowed-cidr <allowed_cidr>` — IP-адрес, с которого разрешено принимать трафик, где `<allowed_cidr>` — подсеть в формате CIDR или одиночный IP-адрес с маской `/32`. Если нужно указать несколько адресов, каждый укажите в отдельном параметре `--allowed-cidr`. Чтобы ограничение работало, в сети балансировщика должна быть включена [фильтрация трафика (port security)](/cloud-servers/cloud-networks/about-networks.mdx#traffic-filtering-port-security). Вы можете [указать разрешенные IP-адреса в правиле](/cloud-servers/load-balancers/manage/limit-access-to-balancer.mdx#specify-allowed-cidrs-in-rule) после создания балансировщика.

        5. Создайте [HTTP-политику](/cloud-servers/load-balancers/about-load-balancers.mdx#http-policies) в правиле:

           ```bash
           openstack loadbalancer l7policy create \
             --action <action> \
             [--redirect-url <url> | --redirect-prefix <prefix_url> | --redirect-pool <pool> ]
             --position <position> \
             --name <policy_name> \
             <listener>
           ```

           Укажите:

           * `<action>` — действие для балансировки трафика:

             * `REDIRECT_TO_URL` — полностью заменять URL запроса, включая протокол, доменное имя, путь и параметры;
             * `REDIRECT_PREFIX` — заменять протокол и доменное имя в URL запроса;
             * `REDIRECT_TO_POOL` — направлять на целевую группу;
             * `REJECT` — отклонять;

           * куда нужно направить трафик:

             * `--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`. Если у вас еще нет целевой группы, [создайте ее](/cloud-servers/load-balancers/target-groups/create-target-group.mdx);

           * `--position <position>` — позиция политики в правиле. Укажите, если в правиле будет несколько политик с одинаковым действием, политика с позицией `1` применится первой из них;

           * `<policy_name>` — имя L7-политики;

           * `<listener>` — ID или имя правила, которое вы создали на шаге 4. Список можно посмотреть с помощью команды `openstack loadbalancer listener list`.

        6. Создайте условие в HTTP-политике:

           ```bash
           openstack loadbalancer l7rule create \
             --compare-type <compare_type> \
             --type <type> \
             --value <value> \
             <policy>
           ```

           Укажите:

           * `<compare_type>` — тип совпадения с контрольным значением:

             * `EQUAL TO` — совпадает;
             * `STARTS WITH` — начинается с;
             * `ENDS WITH` — заканчивается на;
             * `CONTAINS` — содержит;
             * `REGEX` — регулярное выражение;

           * `<type>` — параметр в запросе для проверки: `HOST_NAME`, `PATH`, `COOKIE`, `FILE_TYPE`, `HEADER`;

           * `<value>` — контрольное значение;

           * `<policy>` — ID или имя L7-политики, которую вы создали на шаге 5.
      </TabItem>
    </Tabs>
  </TabItem>

  <TabItem value="terraform">
    <TabItemLabel>
      Terraform
    </TabItemLabel>

    Используйте инструкции в документации Terraform:

    * [Создать облачный балансировщик нагрузки](/terraform/examples/cloud-load-balancers/create-load-balancer/);
    * [Пример создания инфраструктуры с облачным балансировщиком нагрузки](/terraform/examples/cloud-load-balancers/create-load-balancer-and-server/).
  </TabItem>
</Tabs>

<Formbricks />
