Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Application Load Balancer
  • Начало работы
    • Все инструкции
    • Создать инфраструктуру Application Load Balancer c помощью визарда
      • Создать HTTP-роутер для HTTP-трафика
      • Создать HTTP-роутер для gRPC-трафика
      • Получить информацию об HTTP-роутере
      • Изменить HTTP-роутер
      • Удалить HTTP-роутер
    • Посмотреть операции с ресурсами сервиса
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи L7-балансировщика
  • История изменений
  • Обучающие курсы
  1. Пошаговые инструкции
  2. HTTP-роутеры
  3. Создать HTTP-роутер для HTTP-трафика

Создать HTTP-роутер для HTTP-трафика

Статья создана
Yandex Cloud
Улучшена
Обновлена 21 апреля 2025 г.

Чтобы создать HTTP-роутер и добавить в него маршрут:

Консоль управления
CLI
Terraform
API
  1. В консоли управления выберите каталог, в котором будет создаваться HTTP-роутер.

  2. В списке сервисов выберите Application Load Balancer.

  3. На панели слева выберите HTTP-роутеры.

  4. Нажмите кнопку Создать HTTP-роутер.

  5. Введите имя HTTP-роутера.

  6. В блоке Виртуальные хосты нажмите кнопку Добавить виртуальный хост.

  7. Введите имя хоста.

  8. (Опционально) В поле Authority укажите значение заголовка Host для HTTP/1.1 или псевдо-заголовка :authority для HTTP/2, по которому будет выбираться виртуальный хост.

  9. (Опционально) В поле Профиль безопасности выберите профиль безопасности сервиса Yandex Smart Web Security. Профиль безопасности позволяет настроить фильтрацию входящих запросов, подключить WAF и установить лимиты на количество запросов для защиты от вредоносной активности. Подробнее см. Профили безопасности.

  10. Нажмите кнопку Добавить маршрут.

  11. Введите Имя маршрута.

  12. В поле Путь выберите одну из опций:

    • Совпадает с и укажите путь / — для маршрутизации всех запросов совпадающих с указанным путем.
    • Начинается с — для маршрутизации всех запросов с определенным началом.
    • Регулярное выражение — для маршрутизации всех запросов, удовлетворяющих регулярному выражению стандарта RE2.
  13. В списке Методы HTTP выберите нужные методы.

  14. В поле Действие выберите одну из опций: Маршрутизация, Перенаправление или Ответ. В зависимости от выбранной опции:

    • Маршрутизация:
      • В поле Группа бэкендов выберите имя группы бэкендов из того же каталога, в котором создаете HTTP-роутер.
      • (Опционально) В поле Замена пути или начала укажите, куда HTTP-роутер должен перенаправлять трафик. Если в поле Путь вы выбрали опцию Совпадает с, путь будет полностью заменен. Если была выбрана опция Начинается с, будет заменено только начало.
      • (Опционально) В поле Замена заголовка Host выберите одну из опций:
        • none — замена не происходит.
        • rewrite — происходит замена на указанное значение.
        • auto — происходит автоматическая замена на адрес целевой ВМ.
      • (Опционально) В поле Таймаут, с укажите максимальное время, на которое может быть установлено соединение.
      • (Опционально) В поле Таймаут простоя, с укажите максимальное время, в течение которого соединение может простаивать без передачи данных.
      • (Опционально) В поле Допустимые значения заголовка Upgrade укажите список протоколов, на которые группа бэкендов может перейти в рамках TCP-соединения по запросу клиента.
      • (Опционально) Выберите опцию WebSocket, если вы хотите использовать протокол WebSocket.
    • Перенаправление:
      • В поле Код состояния HTTP выберите код, по которому будет осуществляться перенаправление.
      • (Опционально) В поле Замена пути или начала укажите, куда HTTP-роутер должен перенаправлять трафик. Если в поле Путь вы выбрали опцию Совпадает с, путь будет полностью заменен, даже если в поле Замена пути или начала выбрана опция Начало.
      • (Опционально) Выберите опцию Удалить query-параметры.
      • (Опционально) Выберите опцию Изменить схему. Если в оригинальном URI использована схема http (https) и указан порт 80 (443), при изменении схемы порт будет удален.
      • (Опционально) Выберите опцию Изменить хост и укажите новый хост.
      • (Опционально) Выберите опцию Изменить порт и укажите новый порт.
    • Ответ:
      • В поле Код состояния HTTP выберите код, по которому будет осуществляться ответ.
      • В поле Тело ответа нажмите кнопку Выбрать и в открывшемся окне:
        • Выберите Способ указания ответа: Текст или Файл.
        • В зависимости от выбранного способа прикрепите файл или укажите текст ответа балансировщика на запрос, поступивший по этому маршруту.
  15. Нажмите кнопку Создать.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  1. Посмотрите описание команды CLI для создания HTTP-роутера:

    yc alb http-router create --help
    
  2. Выполните команду:

    yc alb http-router create <имя_HTTP-роутера>
    

    Результат:

    id: a5dcsselagj4********
    name: test-http-router
    folder_id: aoerb349v3h4********
    created_at: "2021-02-11T21:04:59.438292069Z"
    
  3. Посмотрите описание команды CLI для создания виртуального хоста:

    yc alb virtual-host create --help
    
  4. Создайте виртуальный хост, указав имя HTTP-роутера и настройки виртуального хоста:

    yc alb virtual-host create <имя_виртуального_хоста> \
      --http-router-name <имя_HTTP-роутера> \
      --authority your-domain.foo.com \
      --modify-request-header name=Accept-Language,append=ru-RU \
      --rate-limit rps=100,all-requests \
      --security-profile-id <идентификатор_профиля_безопасности>
    

    Где:

    • --http-router-name — имя HTTP-роутера.
    • --authority — домены для заголовков Host для HTTP/1.1 или authority для HTTP/2, которые будут связаны с этим виртуальным хостом. Поддерживаются символы подстановки, например *.foo.com или *-bar.foo.com. Необязательный параметр.
    • --modify-request-header — настройки модификации заголовка запроса:
      • name — имя модифицируемого заголовка.
      • append — строка, которая будет добавлена к значению заголовка.
    • --rate-limit — (опционально) ограничение на скорость запросов:
      • rps или rpm – количество запросов, которые можно принять в секунду или в минуту.
      • all-requests — ограничение на все входящие запросы.
      • requests-per-ip — ограничение на количество запросов для каждого IP-адреса в отдельности. То есть в единицу времени для каждого IP-адреса можно принять указанное количество запросов.
    • --security-profile-id — (опционально) идентификатор профиля безопасности сервиса Yandex Smart Web Security. Профиль безопасности позволяет настроить фильтрацию входящих запросов, подключить WAF и установить лимиты на количество запросов для защиты от вредоносной активности. Подробнее см. Профили безопасности.

    Результат:

    name: test-virtual-host
    authority:
      - your-domain.foo.com
    modify_request_headers:
      - name: Accept-Language
        append: ru-RU
    route_options:
      security_profile_id: fevcifh6tr**********
    rate_limit:
      all_requests:
        per_second: "100"
    
  5. Посмотрите описание команды CLI для добавления маршрута:

    yc alb virtual-host append-http-route --help
    
  6. Добавьте маршрут, указав идентификатор или имя HTTP-роутера и параметры маршрутизации:

    yc alb virtual-host append-http-route <имя_маршрута> \
      --virtual-host-name <имя_виртуального_хоста> \
      --http-router-name <имя_HTTP-роутера> \
      --prefix-path-match / \
      --backend-group-name <имя_группы_бэкендов> \
      --request-timeout <тайм-аут_запроса>s \
      --request-idle-timeout <тайм-аут_ожидания_запроса>s
      --rate-limit rps=<лимит_запросов>,requests-per-ip
    

    Где:

    • --virtual-host-name — имя виртуального хоста.

    • --http-router-name — имя HTTP-роутера.

    • --prefix-path-match — параметр для маршрутизации всех запросов с определенным началом. После параметра укажите путь /.

      Также, чтобы задать условие для маршрутизации, вы можете использовать параметры:

      • --exact-path-match — для маршрутизации всех запросов, совпадающих с указанным путем. После параметра укажите /<путь>/.
      • --regex-path-match — для маршрутизации всех запросов, удовлетворяющих регулярному выражению стандарта RE2. После параметра укажите /<регулярное_выражение>.
    • --backend-group-name — имя группы бэкендов.

    • --request-timeout — тайм-аут запроса, в секундах.

    • --request-max-timeout — максимальный тайм-аут ожидания запроса, в секундах.

    • --rate-limit — ограничение на скорость запросов.

    Подробную информацию о параметрах команды yc alb virtual-host append-http-route см. в справочнике CLI.

    Результат:

    done (1s)
    name: test-virtual-host
    authority:
    - your-domain.foo.com
    routes:
    - name: test-route
      http:
        match:
          path:
            prefix_match: /
        route:
          backend_group_id: a5d4db973944********
          timeout: 2s
          idle_timeout: 3s
    modify_request_headers:
    - name: Accept-Language
      append: ru-RU
    

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

  1. Опишите в конфигурационном файле параметры HTTP-роутера и виртуального хоста:

    resource "yandex_alb_http_router" "tf-router" {
      name          = "<имя_HTTP-роутера>"
      labels        = {
        tf-label    = "tf-label-value"
        empty-label = ""
      }
    }
    
    resource "yandex_alb_virtual_host" "my-virtual-host" {
      name                    = "<имя_виртуального_хоста>"
      http_router_id          = yandex_alb_http_router.tf-router.id
      route {
        name                  = "<имя_маршрута>"
        http_route {
          http_route_action {
            backend_group_id  = "<идентификатор_группы_бэкендов>"
            timeout           = "60s"
          }
        }
      }
      authority               = "<домены>"
      route_options {
        security_profile_id   = "<идентификатор_профиля_безопасности>"
      }
    }
    

    Где:

    • yandex_alb_http_router — описание HTTP-роутера:
      • name — имя HTTP-роутера. Формат имени:

        • длина — от 2 до 63 символов;
        • может содержать строчные буквы латинского алфавита, цифры и дефисы;
        • первый символ — буква, последний — не дефис.
      • labels — метки для HTTP-роутера. Укажите пару ключ-значение.

    • yandex_alb_virtual_host — описание виртуального хоста:
      • name — имя виртуального хоста. Формат имени:

        • длина — от 2 до 63 символов;
        • может содержать строчные буквы латинского алфавита, цифры и дефисы;
        • первый символ — буква, последний — не дефис.
      • http_router_id — идентификатор HTTP-роутера.

      • route — описание маршрута HTTP-роутера:

        • name — имя маршрута.
        • http_route_action — параметр для указания действия с HTTP-трафиком.
          • backend_group_id — идентификатор группы бэкэндов.
          • timeout — максимальный тайм-аут ожидания запроса, в секундах.
      • authority — домены для заголовков Hostдля HTTP/1.1 или authority для HTTP/2, которые будут связаны с этим виртуальным хостом. Поддерживаются символы подстановки, например *.foo.com или *-bar.foo.com. Необязательный параметр.

      • route_options — (опционально) дополнительные параметры виртуального хоста:

        • security_profile_id — идентификатор профиля безопасности сервиса Yandex Smart Web Security. Профиль безопасности позволяет настроить фильтрацию входящих запросов, подключить WAF и установить лимиты на количество запросов для защиты от вредоносной активности. Подробнее см. Профили безопасности.

    Более подробную информацию о параметрах используемых ресурсов в Terraform см. в документации провайдера:

    • yandex_alb_http_router.
    • yandex_alb_virtual_host.
  2. Создайте ресурсы:

    1. В терминале перейдите в папку, где вы отредактировали конфигурационный файл.

    2. Проверьте корректность конфигурационного файла с помощью команды:

      terraform validate
      

      Если конфигурация является корректной, появится сообщение:

      Success! The configuration is valid.
      
    3. Выполните команду:

      terraform plan
      

      В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

    4. Примените изменения конфигурации:

      terraform apply
      
    5. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

    Terraform создаст все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления или с помощью команды CLI:

    yc alb http-router get <имя_HTTP-роутера>
    

Воспользуйтесь методом REST API create для ресурса HttpRouter или вызовом gRPC API HttpRouterService/Create.

Была ли статья полезна?

Предыдущая
Удалить группу бэкендов
Следующая
Создать HTTP-роутер для gRPC-трафика
Проект Яндекса
© 2025 ООО «Яндекс.Облако»