Гид по технологиям

Установка и настройка Envoy Proxy на Debian 11

• 4 min read • Инфраструктура • Обновлено 24 Nov 2025
Envoy на Debian 11: установка и базовая настройка
Envoy на Debian 11: установка и базовая настройка

Логотип или схема Envoy proxy

Envoy proxy — свободный открытый сервисный прокси, проект для облачно‑нативных приложений. Он выполняет роль обратного прокси и балансировщика нагрузки, похожий по задачам на Nginx и HAProxy, но спроектирован для современных микросервисов и распределённой инфраструктуры.

Краткое определение: Envoy — высокопроизводительный сетевой прокси, конфигурируемый через YAML и управляющийся также через gRPC‑API.

Требования

  • Сервер с Debian 11 Bullseye
  • Нерутовый пользователь с sudo‑привилегиями
  • Доступ в интернет для загрузки репозитория и GPG‑ключа

Добавление репозитория Envoy

Envoy можно устанавливать разными способами: из пакетного репозитория, из Docker‑образа или с готового бинарника. Здесь показана установка через официальный .deb‑репозиторий.

Важно: команды ниже требуют sudo. Перед добавлением репозитория убедитесь, что ваш сервер обновлён и вы понимаете источники пакетов.

Сначала установите необходимые утилиты для работы с GPG и HTTPS‑репозиториями:

sudo apt install gnupg2 apt-transport-https -y

Добавьте и проверьте GPG‑ключ Envoy:

curl -sL 'https://deb.dl.getenvoy.io/public/gpg.8115BA8E629CC074.key' | sudo gpg --dearmor -o /usr/share/keyrings/getenvoy-keyring.gpg  
echo a077cb587a1b622e03aa4bf2f3689de14658a9497a9af2c427bba5f4cc3c4723 /usr/share/keyrings/getenvoy-keyring.gpg | sha256sum --check

Если ключ корректен, вы увидите OK.

Добавьте репозиторий в систему:

echo "deb [arch=amd64 \  
signed-by=/usr/share/keyrings/getenvoy-keyring.gpg] \  
 https://deb.dl.getenvoy.io/public/deb/debian \  
$(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/getenvoy.list

Обновите индексы пакетов:

sudo apt update

Добавление репозитория Envoy в Debian

Установка Envoy Proxy

Установите пакет Envoy из репозитория:

sudo apt install getenvoy-envoy

Процесс установки Envoy на Debian

Проверьте версию после установки:

envoy --version

В примере была установлена версия v1.18. Если хотите другую версию, используйте предсобранный бинарник с сайта Envoy или другой источник.

Посмотрите доступные опции:

envoy --help

Настройка Envoy

Создайте каталог для конфигурации и файл конфига:

mkdir -p /etc/envoy/
sudo nano /etc/envoy/demo.yaml

Ниже приведён пример минимального статического конфига, который слушает 0.0.0.0:80 и проксирует трафик к www.envoyproxy.io по HTTPS (порт 443). Этот конфиг использует статические ресурсы: listeners и clusters.

static_resources:  
  
  listeners:  
  - name: listener_0  
    address:  
      socket_address:  
        address: 0.0.0.0  
        port_value: 80  
    filter_chains:  
    - filters:  
      - name: envoy.filters.network.http_connection_manager  
        typed_config:  
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager  
          stat_prefix: ingress_http  
          access_log:  
          - name: envoy.access_loggers.stdout  
            typed_config:  
              "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog  
          http_filters:  
          - name: envoy.filters.http.router  
            typed_config:  
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router  
          route_config:  
            name: local_route  
            virtual_hosts:  
            - name: local_service  
              domains: ["*"]  
              routes:  
              - match:  
                  prefix: "/"  
                route:  
                  host_rewrite_literal: www.envoyproxy.io  
                  cluster: service_envoyproxy_io  
  
  clusters:  
  - name: service_envoyproxy_io  
    type: LOGICAL_DNS  
    connect_timeout: 5s  
    # Comment out the following line to test on v6 networks  
    dns_lookup_family: V4_ONLY  
    load_assignment:  
      cluster_name: service_envoyproxy_io  
      endpoints:  
      - lb_endpoints:  
        - endpoint:  
            address:  
              socket_address:  
                address: www.envoyproxy.io  
                port_value: 443  
    transport_socket:  
      name: envoy.transport_sockets.tls  
      typed_config:  
        "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext  
        sni: www.envoyproxy.io

Сохраните и закройте файл.

Проверка конфигурации

Запустите валидацию конфига:

envoy --mode validate -c /etc/envoy/demo.yaml

Ожидаемый вывод при корректной конфигурации: “configuration /etc/envoy/demo.yaml OK”.

Проверка конфигурации Envoy

Критерии приёмки

  • Конфигурация валидируется без ошибок
  • Envoy запускается и слушает порт 80
  • Трафик проксируется на целевой кластер

Пробный запуск и проверка

Запустите Envoy с конфигом:

envoy -c /etc/envoy/demo.yaml

Просмотрите лог и убедитесь, что нет ошибок при старте.

Запуск Envoy и вывод логов

На локальной машине добавьте привязку домена в /etc/hosts для тестирования (замените IP на IP вашего сервера):

sudo nano /etc/hosts
192.168.5.10 www.envoyproxy.io

Откройте в браузере http://www.envoyproxy.io и убедитесь, что отображается ожидаемая страница.

Результат проксирования через Envoy

Когда это не подходит

  • Если нужен лёгкий статический веб‑сервер для простых случаев, Nginx может быть предпочтительнее по простоте конфигурации.
  • Для внутренних сервисов с минимальным перформанс‑требованием накладные расходы Envoy могут быть избыточны.
  • Envoy требует понимания сетевых фильтров и TLS: для простого проксирования без TLS/маршрутизации можно использовать более простые инструменты.

Альтернативные подходы

  • Установка через Docker: запуск официального образа envoyproxy/envoy.
  • Использование предсобранного бинарника с официального сайта для конкретной версии.
  • Управление конфигурацией динамически через xDS API (подходит для сервис‑машей и крупной инфраструктуры).

Быстрая методология внедрения (мини‑метод)

  1. Тестовый стенд: разверните в изолированной сети.
  2. Подготовьте конфигурацию минимальную: слушатель, маршрут, кластер.
  3. Валидируйте конфиг локально (envoy –mode validate).
  4. Запустите в режиме наблюдения, проверьте логи и метрики.
  5. Постепенно подключайте прод‑трафик и мониторинг.

Факто‑бокс

  • Формат конфигурации: YAML (static_resources / dynamic_resources)
  • Коммуникация управления: gRPC (xDS API)
  • Примеры команд: envoy –version, envoy –help, envoy –mode validate
  • Частые порты: HTTP 80, HTTPS 443

Чеклист по ролям

Администратор:

  • Проверить наличие sudo и сетевого доступа
  • Добавить GPG‑ключ и репозиторий
  • Установить пакет и убедиться в запусках сервиса

Разработчик/DevOps:

  • Подготовить и протестировать YAML конфиг
  • Провести валидацию и э2е‑тесты
  • Настроить мониторинг и access_log

Сетевой инженер:

  • Проверить DNS и правила брандмауэра
  • Настроить SNI и TLS для upstream

Сниппеты и шпаргалка

Проверка процесса Envoy (пример для systemd‑интеграции, если вы настроили unit‑файл):

sudo systemctl status envoy
sudo journalctl -u envoy -f

Быстрая команда для теста HTTP через curl (на машине с /etc/hosts, где домен указывает на ваш Envoy):

curl -v http://www.envoyproxy.io/

Если кластер использует HTTPS на upstream, убедитесь что transport_socket TLS настроен корректно.

Рекомендации по безопасности

  • Не запускайте Envoy с привилегиями root без необходимости.
  • Включите TLS для upstream и используйте SNI, если в конфиге несколько серверов.
  • Ограничьте доступ к административным портам и API.
  • Логи и метрики отправляйте в централизованный стек (Prometheus/ELK) для аудита и алертинга.

Советы по отладке

  • При ошибках валидатора проверьте YAML‑вставки и типы полей.
  • Для проблем с DNS убедитесь в правильной опции dns_lookup_family.
  • Увеличьте уровень логирования, чтобы увидеть подробности маршрутизации.

Краткое резюме

Поздравляем — вы установили Envoy на Debian 11 и запустили простой конфиг, который проксирует HTTP на внешний хост по HTTPS. Далее рекомендуем внедрять постепенное развёртывание: тестирование, мониторинг и жёсткая политика безопасности.

Важно: перед развёртыванием в проде продумайте обновления конфигурации и процесс отката.

Ключевые шаги:

  • Добавить репозиторий и GPG‑ключ
  • Установить пакет getenvoy-envoy
  • Написать и проверить YAML конфиг
  • Запустить Envoy и протестировать проксирование

Короткое объявление для команды (пример):

Envoy установлен на Debian 11 и готов к тестированию. Протестируйте маршрутизацию на http://www.envoyproxy.io после добавления записи в /etc/hosts.

Полезная литература: официальная документация Envoy и примеры конфигураций на сайте проекта.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро