Включение поддержки протокола HTTP/2 в Nginx, на проекте CRYSTAL v1.0
4 июля 2025
обн: 13 января
Содержание:
1. Описание протокола HTTP/2
HTTP/2 — это современная версия протокола HTTP, разработанная для устранения ограничений HTTP/1.1 и улучшения работы веб-приложений.
Ключевые технические усовершенствования:
- Мультиплексирование: несколько запросов и ответов передаются одновременно по одному TCP-соединению, без блокировки.
- Сжатие заголовков (HPACK): снижает избыточность данных и ускоряет обмен информацией между клиентом и сервером.
- Серверный push: позволяет серверу заранее отправлять ресурсы, такие как стили, скрипты и изображения, ещё до того, как браузер сам их запросит. Это снижает задержку и ускоряет загрузку страницы.
- Бинарный формат: упрощает разбор HTTP-сообщений на стороне сервера и клиента, благодаря чему уменьшаются накладные расходы и ускоряется передача данных.
- Приоритизация: критически важные ресурсы (например CSS или JavaScript) передаются клиенту с приоритетом, ускоряя отображение страницы.
Кроме повышения производительности, HTTP/2 усиливает безопасность сайта за счёт обязательного использования TLS в большинстве браузеров, современных криптографических алгоритмов и защиты от ряда атак, актуальных для HTTP/1.1.
2. Включение поддержки протокола HTTP/2
⚠️ Примечание по безопасности
В данной инструкции и в других пунктах документации, используется команда sudo -i, для перехода в режим
суперпользователя (root). Это сделано для ускорения процесса и сокращения команд.
В production-среде, постоянная работа из-под root, не
рекомендуется, так как это нарушает принцип наименьших привилегий и существенно снижает безопасность
сервера.
Включите sudo:
sudo -i
Для включения поддержки протокола HTTP/2, последовательно выполните команды ниже:
nano /etc/nginx/sites-available/crystal
Найдите в открывшимся окне все строки вида:
listen 443 ssl;
и замените их на:
listen 443 ssl http2;
После замены, нажмите последовательно - 'ctrl + x', 'y', 'Enter'.
Далее, введите команду:
systemctl restart nginx && curl -I --http2 https://ВашДомен
Первая строка вывода, должна содержать - 'HTTP/2 200', это означает, что подключение протокола - HTTP/2, прошло успешно.
В дальнейшем, вы можете включить поддержку, ещё более современной версии протокола - HTTP/3. В данном случае, версия HTTP/2 представлена для упрощения инструкции.
Вы можете сделать сайт, намного безопаснее, добавив некоторые правила к серверу Nginx, по этой инструкции.
Поделиться
USDT (TRON (TRC20)): TTvJdwtL3VAZKSHbYi8B2eQEQDxbHUD4Ka
POL (Polygon PoS): 0x97377684b9a589eca92e2c6c8430e6dcf2bae8c2
ETH (Base Mainnet): 0x97377684b9a589eca92e2c6c8430e6dcf2bae8c2
ETH (ERC20): 0x97377684b9a589eca92e2c6c8430e6dcf2bae8c2
BTC (BTC): 12GkhJZWrdn23PUerGerN7nSZXHwWGm59U





Прокомментировать в