Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Application Load Balancer
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Целевые группы
      • Создать целевую группу
      • Изменить целевую группу
      • Удалить целевую группу
    • Группы бэкендов
      • Создать группу бэкендов
      • Изменить группу бэкендов
      • Удалить группу бэкендов
    • HTTP-роутеры
      • Создать HTTP-роутер для HTTP-трафика
      • Создать HTTP-роутер для gRPC-трафика
      • Изменить HTTP-роутер
      • Удалить HTTP-роутер
    • L7-балансировщики
      • Создать L7-балансировщик
      • Изменить L7-балансировщик
      • Посмотреть статистику L7-балансировщика
      • Посмотреть логи L7-балансировщика
      • Получить идентификатор лог-группы L7-балансировщика
      • Остановить и запустить L7-балансировщик
      • Удалить L7-балансировщик
    • Инструменты для Managed Service for Kubernetes
      • Установить Ingress-контроллер
      • Установить Gateway API
      • Создать или изменить ресурсы по конфигурации
  • Практические руководства
    • Все практические руководства
    • Организация виртуального хостинга
    • Создание балансировщика с защитой от DDoS
    • Интеграция L7-балансировщика с CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
    • Терминирование TLS-соединений
    • Запись логов балансировщика в PostgreSQL
    • Развертывание и нагрузочное тестирование gRPC-сервиса с масштабированием
  • Концепции
    • Обзор
    • Балансировщики нагрузки
    • HTTP-роутеры
    • Группы бэкендов
    • Целевые группы
    • Квоты и лимиты
  • Инструменты для Managed Service for Kubernetes
    • Ingress-контроллер
      • Обзор
      • Принципы работы
    • Gateway API
    • Необходимые настройки
      • Группы безопасности
      • Сервисный аккаунт
  • Управление доступом
  • Правила тарификации
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • BackendGroupService
      • HttpRouterService
      • LoadBalancerService
      • TargetGroupService
      • VirtualHostService
      • OperationService
    • REST (англ.)
      • Overview
      • BackendGroup
        • Overview
        • addBackend
        • create
        • delete
        • get
        • list
        • listOperations
        • removeBackend
        • update
        • updateBackend
      • HttpRouter
        • Overview
        • create
        • delete
        • get
        • list
        • listOperations
        • update
      • LoadBalancer
        • Overview
        • addListener
        • addSniMatch
        • create
        • delete
        • get
        • getTargetStates
        • list
        • listOperations
        • removeListener
        • removeSniMatch
        • start
        • stop
        • update
        • updateListener
        • updateSniMatch
      • TargetGroup
        • Overview
        • addTargets
        • create
        • delete
        • get
        • list
        • listOperations
        • removeTargets
        • update
      • VirtualHost
        • Overview
        • create
        • delete
        • get
        • list
        • removeRoute
        • update
        • updateRoute
  • Справочники инструментов для Managed Service for Kubernetes
    • Обзор
    • Ingress-контроллер
      • Ingress
      • HttpBackendGroup
    • Gateway API
      • Gateway
      • HTTPRoute
    • Service
  • Справочник логов
  1. Пошаговые инструкции
  2. HTTP-роутеры
  3. Создать HTTP-роутер для HTTP-трафика

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

Статья создана
Yandex Cloud
,
улучшена
Anton P.

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

    Консоль управления
    CLI
    Terraform
    1. В консоли управления выберите каталог, в котором будет создаваться HTTP-роутер.
    2. В списке сервисов выберите Application Load Balancer.
    3. На панели слева выберите HTTP-роутеры.
    4. Нажмите кнопку Создать HTTP-роутер.
    5. Введите имя роутера: test-router.
    6. В блоке Виртуальные хосты нажмите кнопку Добавить виртуальный хост.
    7. Введите имя хоста: test-host-1.
    8. Нажмите кнопку Добавить маршрут.
    9. Введите Имя: test-route.
    10. В поле Путь выберите Совпадает с и укажите путь /.
    11. В списке Методы HTTP выберите GET.
    12. В поле Действие оставьте Маршрутизация.
    13. В списке Группа бэкендов выберите имя группы бэкендов из того же каталога, в котором создаете роутер.
    14. Остальные настройки оставьте без изменений и нажмите кнопку Создать.

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

    По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

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

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

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

      Результат:

      id: a5dcsselagj4o2v4a6e7
      name: test-http-router
      folder_id: aoerb349v3h4bupphtaf
      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
      

      Где:

      • --authority — домены для заголовков Host и authority, которые будут связаны с этим виртуальным хостом. Поддерживаются символы подстановки, например *.foo.com или *-bar.foo.com.
      • --modify-request-header — настройки модификации заголовка запроса:
        • name — имя модифицируемого заголовка.
        • append — строка, которая будет добавлена к значению заголовка.

      Результат:

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

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

      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
      

      Результат:

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

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

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

    При изменении файлов конфигураций 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          = "3s"
            }
          }
        }
      }    
      

      Где:

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

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

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

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

        • route — описание маршрута HTTP-роутера. Укажите имя маршрута, идентификатор группы бэкендов и время для обработки запроса (по умолчанию 60 секунд).

      Более подробную информацию о параметрах ресурсов в Terraform см. в документации провайдера (yandex_alb_http_router и yandex_alb_virtual_host).

    2. Проверьте корректность конфигурационных файлов.

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

      2. Выполните проверку с помощью команды:

        terraform plan
        

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

    3. Разверните облачные ресурсы.

      1. Если в конфигурации нет ошибок, выполните команду:

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

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

        yc alb http-router get <идентификатор http-роутера>
        

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

    Language / Region
    Проект Яндекса
    © 2023 ООО «Яндекс.Облако»