HTTP/3, основанный на протоколе QUIC, обещает заметное ускорение доставки контента. В этом руководстве разберём, как включить HTTP/3 в Nginx, собрать сервер с нужными модулями, настроить сертификаты и проверить работу. Если вы хотите enable http3 nginx и получить реальные выгоды, читайте дальше.
Разбор задачи
Начиная работу с HTTP/3, важно понять, что это не просто настройка в конфиге, а комплексный процесс: сборка Nginx с модулями quic и http3, конфигурация TLS, проверка совместимости клиентов. Неправильно собранный сервер может работать только с HTTP/2, а не с HTTP/3.
Пошаговое решение
1) Установите необходимые зависимости: libnginx-mod-http-headers-more, libnginx-mod-http-headers-more-filter, openssl >= 1.1.1, libssl-dev, zlib1g-dev, libpcre3-dev, libpcre3‑static. 2) Скачайте исходники Nginx 1.25.x и исходники QUIC‑module из репозитория quic-go. 3) Соберите Nginx с опцией —add-module=path/to/quic‑module и включите —with-http_ssl_module. 4) Создайте сертификат TLS (Let’s Encrypt или самоподписанный) и разместите его в /etc/nginx/ssl. 5) В конфиге nginx.conf добавьте директивы listen 443 quic reuseport; и ssl_certificate, ssl_certificate_key. 6) Включите TLS‑версии 1.3 и ciphersuites, совместимые с QUIC. 7) Перезапустите nginx и проверьте статус через curl -I --http3 https://your‑domain.com. 8) При необходимости настройте fallback на HTTP/2 с помощью listen 443 ssl http2;.
Рабочий код
# nginx.conf snippet
server {
listen 443 quic reuseport;
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_ciphers TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256;
location / {
root /var/www/html;
index index.html index.php;
}
}
Типичные ошибки
• Неверный путь к сертификатам – сервер падает.
• Не включён TLS 1.3 – QUIC не запускается.
• Используется устаревший OpenSSL (< 1.1.1) – сборка с QUIC невозможна.
• Порт 443 заблокирован – нужно открыть UDP 443 для QUIC.
FAQ
Какие браузеры поддерживают HTTP/3?
На 2026 год поддержка уже шире: Chrome, Edge, Firefox, Safari в последних версиях. Однако проверять работу лучше на curl --http3 и https://www.testurl.com через DevTools.
Как проверить, что сервер действительно использует HTTP/3?
Запустите curl -I --http3 https://your‑domain.com. Ответ должен содержать HTTP/3 200. В браузере в DevTools → Network → Protocol → HTTP/3.
Можно ли использовать HTTP/3 вместе с CDN?
Да, большинство CDN (Cloudflare, Fastly) уже поддерживают QUIC. Важно убедиться, что ваш сервер отдаёт корректный TLS‑сигнатурный handshake, иначе CDN будет использовать HTTP/2.
Заключение с чек‑листом
Проверьте:
• Сборка Nginx с QUIC‑module завершилась без ошибок.
• Сертификаты TLS доступны и правильно указаны.
• В конфиге есть listen 443 quic.
• TLS 1.3 включён.
• Порт 443 открыт для UDP.
• curl --http3 возвращает HTTP/3. Если все пункты выполнены – ваш сайт готов к ускоренной работе!
