Поддержка HTTP/3?

К сожалению, пока нет.

Я поддерживаю ветку нашего контейнера, готовую к HTTP/3, с (проверяю заметки) 2019 года; её можно посмотреть здесь: GitHub - discourse/discourse_docker at http3 · GitHub.

Причина, по которой мы не внедрили это широко, заключается в комплексе проблем в экосистеме в целом:

  • Разработка Nginx замедлилась до предела, и они больше не успевают за новыми веб-технологиями, такими как HTTP/3 или Early Hints.

  • Модульная архитектура Nginx позволяла добавить поддержку через модуль, и моя ветка использует модуль Nginx от Cloudflare — quiche. Однако Cloudflare также отказался от Nginx, и этот модуль никогда не считался готовым к промышленному использованию.

  • Я рассматривал возможность перехода на более современный веб-сервер, например Caddy, но такие изменения крайне сложны, когда вы выпускаете ПО для самостоятельного хостинга, которое пользователи будут настраивать под себя.

  • Переход на HAProxy был бы проще продать, но мы используем Nginx для раздачи статических файлов, чего HAProxy не умеет делать.

  • Факт того, что разработчики OpenSSL фактически сорвали разработку QUIC и остановили прогресс всей экосистемы на срок, эквивалентный десятилетию.

Все вышеперечисленное, а также все присущие переходу с TCP на UDP проблемы, которые являются частью этого процесса, означали, что такое изменение было слишком рискованным для нас.

Это очень грустно, учитывая, что за последние 4 года в среднем домохозяйстве большая часть трафика уже использует HTTP/3, поскольку все крупные игроки перешли на него ещё несколько лет назад: YouTube, Amazon, Shopify, Instagram, Twitch.tv и другие. Это ещё больше увеличивает разрыв между крупными технологическими компаниями и небольшими сайтами. Жаль, что нам не удалось стать ранними последователями в этом вопросе, как это было с SPDY, HTTP/2 и Brotli.

Учитывая всё вышесказанное, если вы хотите простое решение «в один клик» для всей этой путаницы, вы можете использовать Cloudflare перед вашим экземпляром Discourse.

12 лайков