Акция Панель управления ispmanager для VDS — первый месяц бесплатно
до 31.07.2026 Подробнее
Выберите продукт

Alt‑Svc на практике: плавная миграция между HTTP/2, HTTP/3 и сменой origin

Alt‑Svc позволяет объявить браузеру альтернативный протокол (HTTP/3/QUIC) и даже другой host для того же origin. Разбираем включение HTTP/3 без даунтайма, миграцию на новый origin без редиректов и DNS, метрики и быстрый откат.
Alt‑Svc на практике: плавная миграция между HTTP/2, HTTP/3 и сменой origin

Когда нужно ускорить сайт за счёт HTTP/3/QUIC или перевести трафик на новую инфраструктуру без резкой смены DNS, на помощь приходит заголовок Alt-Svc. Он мягко подсказывает клиенту, где и по какому протоколу лучше общаться с тем же самым origin. В отличие от редиректов, это не меняет URL и не влияет на SEO; а в отличие от DNS-переключений, даёт тонкий контроль и быстрый откат.

Что такое Alt‑Svc и зачем он нужен

Alt-Svc (RFC 7838 и обновления) — HTTP-заголовок, с помощью которого сервер объявляет «альтернативный сервис» для текущего origin: другой протокол (например, h3 вместо h2) и/или другой authority (хост:порт), который способен обслуживать тот же origin. Клиент кэширует объявление на заданное время и при последующих запросах может переподключаться уже к альтернативе.

Важный момент: альтернативный сервис обязан предъявлять TLS‑сертификат, валидный для исходного origin. Клиент использует SNI исходного origin, а не альтернативного хоста, и проверяет сертификат по origin. Если сертификата для origin ещё нет, оформите его через SSL-сертификаты.

Ключевые идеи

  • Плавная активация HTTP/3/QUIC: сначала запрос по HTTP/2, клиент получает Alt-Svc: h3=..., затем переходит на QUIC без изменения URL.
  • Миграция на другой host:port: сервер сообщает h2/h3 альт-сервис на новом хосте, клиенты постепенно переходят туда без правки DNS.
  • Быстрый откат: можно указывать короткие TTL (ma) или послать Alt-Svc: clear, чтобы сбросить кэш альтернатив.

Как клиент принимает решение

Браузер запрашивает страницу обычным способом (HTTP/1.1 или http2), получает Alt-Svc, кэширует объявление на ma секунд и для следующих запросов к этому origin может:

  • открыть соединение к тому же хосту, но по другому протоколу (h3),
  • или подключиться к альтернативному authority (например, new-alt.example.net:443),
  • при сбое вернуться к исходному пути (fallback на HTTP/2/TCP).

Синтаксис заголовка Alt‑Svc

Базовая форма: Alt-Svc: <ALPN>="<authority>"; ma=<seconds>[; persist=1]. Несколько альтернатив разделяются запятыми.

  • ALPN: h2, h3 (актуально), допускаются конкретные версии (h3-29) для старых клиентов.
  • authority: host:port или ":443" — тот же хост, другой протокол.
  • ma: время жизни кэша в секундах. Для стартового включения выбирайте короткое (300–3600), затем увеличивайте.
  • persist: если равно 1, клиент может держаться альт-сервиса даже при смене сетей. Поддержка зависит от агента.

Сброс анонсов выполняется специальным значением:

Alt-Svc: clear

Это просит клиента забыть все альтернативы для данного origin.

Проверка Alt‑Svc и HTTP/3 через curl

HTTP/3/QUIC: плавная активация через Alt‑Svc

Самый безопасный способ включить http3 — сначала держать сайт на http2, отдавать Alt-Svc: h3 с небольшим ma, собрать метрики, затем увеличивать TTL.

Nginx: минимальная конфигурация

server {
    listen 443 ssl http2;
    listen 443 quic reuseport;

    ssl_certificate /etc/ssl/certs/site.pem;
    ssl_certificate_key /etc/ssl/private/site.key;

    # Реклама HTTP/3 клиентам, пришедшим по H1/H2
    add_header Alt-Svc 'h3=":443"; ma=3600' always;
    add_header QUIC-Status $quic always;

    # остальная конфигурация...
}

Пояснения:

  • listen 443 quic включает UDP‑слушатель для QUIC.
  • Alt-Svc с h3=":443" говорит: для этого же хоста доступен HTTP/3.
  • QUIC-Status — необязательный вспомогательный заголовок для наблюдаемости (покажет h3 при QUIC, пусто при TCP).

Apache httpd (с поддержкой HTTP/3)

<VirtualHost *:443>
    ServerName www.example.com
    Protocols h2 h3 http/1.1

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/site.pem
    SSLCertificateKeyFile /etc/ssl/private/site.key

    Header always set Alt-Svc "h3=\":443\"; ma=3600"

    # остальная конфигурация...
</VirtualHost>

Пакеты с mod_http3 зависят от дистрибутива; убедитесь, что включены нужные модули и открыт UDP/443.

Caddy

www.example.com {
    encode zstd gzip
    header {
        Alt-Svc "h3=\":443\"; ma=3600"
    }
    # остальная конфигурация...
}

Проверка

# Получить ответные заголовки и увидеть Alt-Svc
curl -I https://www.example.com

# Проверить, что сервер доступен по HTTP/3
curl -I --http3-only https://www.example.com

# При необходимости проверить конкретный IP
curl -I --http2 --resolve www.example.com:443:203.0.113.10 https://www.example.com

В браузерах смотрите процент трафика по http3, латентность и ошибки рукопожатия QUIC. Клиентов, у которых UDP/443 блокирован, браузер автоматически вернёт на http2. Параллельно можно ускорить первый байт через 103 Early Hints — см. обзор и примеры в материале «HTTP/103 Early Hints: Nginx и Apache» (как и где их включать).

Миграция на другой origin через Alt‑Svc

Сценарий: вы поднимаете новую инфраструктуру на другом хосте/адресе и хотите мягко перевести трафик, не трогая DNS и без 301/302. Alt-Svc позволяет указать альтернативный authority, на котором уже работает тот же origin. Удобно сначала развернуть стенд на VDS, проверить нагрузку и только затем переводить пользователей.

Предварительные условия

  • TLS‑сертификат на origin‑имя установлен на альтернативном сервисе (сертификат должен покрывать исходный Host).
  • SNI: альтернативный сервер должен принимать SNI с origin‑именем и отдавать соответствующий vhost.
  • Согласованность cookie и сессий: приложение должно корректно обслуживать тот же домен.
  • Сетевая доступность: открыт TCP/443 (и UDP/443, если будете сразу рекламировать http3).
FastFox SSL
Надежные SSL-сертификаты
Мы предлагаем широкий спектр SSL-сертификатов от GlobalSign по самым низким ценам. Поможем с покупкой и установкой SSL бесплатно!

Объявление альтернативного authority

На старом сервере:

add_header Alt-Svc 'h2="new-alt.example.net:443"; ma=600; persist=1' always;

Это просит клиентов, поддерживающих http2, переподключаться к new-alt.example.net:443, но продолжать использовать authority исходного origin. На новом узле настройте виртуальный хост с server_name исходного домена и тем же сертификатом.

Nginx: пример vhost на альтернативном узле

server {
    listen 443 ssl http2;
    listen 443 quic reuseport;

    server_name www.example.com;  # ОБЯЗАТЕЛЬНО: имя origin

    ssl_certificate /etc/ssl/certs/site.pem;  # валидный для www.example.com
    ssl_certificate_key /etc/ssl/private/site.key;

    # По желанию — реклама самих себя как h3
    add_header Alt-Svc 'h3=":443"; ma=86400' always;

    # upstream/приложение...
}

Миграция на новый origin без смены DNS с Alt‑Svc

О тонкостях coalescing и код 421

HTTP/2/3 допускают «coalescing» — повторное использование TLS‑соединения для нескольких origin при общем сертификате и IP. При миграциях это может приводить к тому, что клиент ошибочно отправит запрос на «не тот» бэкенд. Чтобы корректно разорвать неверное соединение, используйте ответ 421 Misdirected Request, если Host не соответствует vhost'у.

server {
    listen 443 ssl http2;
    server_name www.example.com;

    if ($host != 'www.example.com') {
        return 421;
    }

    # остальная конфигурация...
}

Это мягкий способ подсказать клиенту установить новое соединение, не ломая UX. Если внутри периметра используете h2c‑бэкенды, обратите внимание на практику настройки в материале «Nginx и Envoy: upstream по h2c» (плюсы и нюансы).

План раскатки

  1. На старом узле включите Alt-Svc на новый authority с ma=300–600. Соберите метрики.
  2. Убедитесь, что доля запросов на новый узел растёт, ошибок нет, 421 встречается редко.
  3. Постепенно увеличивайте ma до суток. На новом узле можно рекламировать h3.
  4. Когда весь трафик стабилен, уберите Alt-Svc со старого узла. При необходимости покажите клиентам Alt-Svc: clear на старом, чтобы ускорить забывание старых анонсов.
FastFox VDS
Облачный VDS-сервер в России
Аренда виртуальных серверов с моментальным развертыванием инфраструктуры от 195₽ / мес

Откат и управление рисками

  • Быстрый откат: верните короткое ma или пошлите Alt-Svc: clear со старого origin.
  • Принудительный fallback: временно закройте UDP/443 на альтернативном узле — клиенты уйдут на http2. Для смены authority просто уберите заголовок.
  • Наблюдаемость: храните графики доли http3, хэндшейков QUIC, TTFB p95/p99, долю 421, процент возвратов на http2.

Производительность и подводные камни

Ожидаемый выигрыш от http3 выше в мобильных и высоколатентных сетях: быстрее рукопожатие, устойчивее к потерям. Но есть нюансы.

  • CPU и память: QUIC реализован в user space, нагрузка на CPU может вырасти. Мониторьте утилизацию.
  • Firewall/NAT: не везде пропускают UDP/443; клиенты автоматически откатятся на http2. Это нормально.
  • Системные буферы UDP: проверьте лимиты rmem/wmem, очереди, параметры ядра, чтобы не терять пакеты под нагрузкой.
  • CDN: многие CDN уже выставляют Alt-Svc. Не дублируйте заголовок на origin за CDN, чтобы не создавать конфликтующих объявлений.
  • ALPN‑метки: сегодня достаточно h3. Старые h3-29 оставляйте только при реальной необходимости.
  • 0-RTT: при его включении оценивайте идемпотентность запросов. Для критичных операций лучше запретить ранние данные.

Частые вопросы

Влияет ли Alt‑Svc на SEO? Нет: это не редирект и не меняет URL. Поисковые роботы в большинстве случаев продолжают использовать http2, а Alt-Svc не меняет содержимое.

Нужен ли HSTS для Alt‑Svc? Независимо. HSTS — про обязательный HTTPS, Alt-Svc — про альтернативный транспорт/authority.

Можно ли указать другой порт? Да, например h3=":8443" или h2="alt.example.net:8443". Убедитесь, что порт открыт и сертификат валиден для origin.

Работает ли с прокси и корпоративными сетями? Иногда прокси игнорируют Alt-Svc или блокируют UDP. В таких средах клиенты останутся на http2. Если вы настраиваете сайт на нашем виртуальном хостинге, HTTP/3 включён на стороне сервера — достаточно проверить заголовки ответа.

Чеклист внедрения Alt‑Svc

  • Проверить сертификаты: альтернативный сервис предъявляет сертификат, валидный для origin.
  • Открыть TCP/443 и (опционально) UDP/443, настроить протоколы и ALPN.
  • На текущем сервере включить Alt-Svc с коротким ma и аккуратным набором ALPN: h3 и/или h2 к альтернативному authority.
  • Включить метрики: доля http3, ошибки QUIC, время отклика, 421.
  • Постепенно увеличить ma, убедиться в стабильности.
  • Для миграции origin: на новом узле поднять vhost с server_name исходного домена и валидным сертификатом.
  • На откат: подготовить вариант с Alt-Svc: clear и план отключения UDP/443.

Практические примеры заголовков

# Реклама HTTP/3 на том же хосте
Alt-Svc: h3=":443"; ma=86400

# Переезд на другой host по HTTP/2, с быстрым откатом
Alt-Svc: h2="new-alt.example.net:443"; ma=600; persist=1

# Одновременная реклама H3 локально и H2 на новом host
Alt-Svc: h3=":443"; ma=3600, h2="new-alt.example.net:443"; ma=600

# Немедленный сброс всех альтернатив
Alt-Svc: clear

Используя Alt-Svc как рычаг управления транспортом и точкой входа, вы получаете гибкий инструмент для повышения производительности и безопасной миграции без риска для доступности.

Поделиться статьей

Вам будет интересно

Headscale vs NetBird vs Netmaker в 2026: какой self-hosted mesh VPN выбрать для VDS и инфраструктуры OpenAI Статья написана AI (GPT 5)

Headscale vs NetBird vs Netmaker в 2026: какой self-hosted mesh VPN выбрать для VDS и инфраструктуры

Если нужен self-hosted mesh VPN для серверов, админских ноутбуков и приватных сервисов, выбор обычно сводится к Headscale, NetBird ...
Frigate vs Shinobi vs ZoneMinder в 2026: какой self-hosted NVR выбрать OpenAI Статья написана AI (GPT 5)

Frigate vs Shinobi vs ZoneMinder в 2026: какой self-hosted NVR выбрать

Если нужен self-hosted NVR на Linux, выбор часто сводится к Frigate, Shinobi и ZoneMinder. Разбираю, чем они отличаются в 2026 год ...
Caddy vs Nginx Unit vs Apache mod_php в 2026 году: что выбрать для PHP-сайта OpenAI Статья написана AI (GPT 5)

Caddy vs Nginx Unit vs Apache mod_php в 2026 году: что выбрать для PHP-сайта

Для небольшого PHP-сайта в 2026 году выбор уже не сводится к схеме Nginx и PHP-FPM. Разбираю Caddy, Nginx Unit и Apache mod_php с ...