Как включить HTTP/2 на Apache в Centos/Redhat - mod_http2
- Последнее обновление: 3 Ноября 2023 г.
- Просмотры: 357
- Автор: Админ

Коллеги всем привет.
Протокол HTTP/2 был выпущен в 2015 году как более продвинутая версия протокола HTTP/1.1. Этот протокол позволит вам очень сильно ускорить работу вашего сайта и снизит нагрузку на веб-сервер Apache и канал связи. Все это приведет к снижению затрат на аренду мощностей и даже повысит позицию вашего сайта в поисковых системах, потому как google смотрит на показатели загрузки вашего сайта, и если сайт будет очень долго грузится то показатели сайта будут низкие. HTTP/2 протокол может загружать сразу несколько элементов страницы параллельно по одному TCP-соединению и это уменьшает задержку загрузки страницы чтобы быстрее отдать пользователю запрошенный контент.
Основные преимущества протокола HTTP/2 перед HTTP/1.1.
- Сжатие HTTP-заголовков.
- Push-технологии.
- Параллельная загрузка элементов страницы.
- Бинарный протокол, в отличие от HTTP 1.1, который представляет собой обычный текст.
HTTP/2 протокол можно использовать только если у вас веб сервер Apache не ниже версии чем 2.2. Поэтому, если у вас версия Apache ниже чем 2.2, то вам сначала необходимо выполнить обновление Apache до совместимой версии. Чтобы вам можно было включить протокол HTTP/2 то вам необходимо иметь два модуля до Apache, первый это mod_http2, а второй mod_ssl.
Содержание статьи:
- Установка модуля mod_http2.
- Установка модуля mod_ssl.
- Проверка включен ли HTTP/2.
- Проверка включен ли модуль HTTP/2 в Apache.
- Включаем HTTP/2.
- Повторна проверка включен ли протокол HTTP/2.
1. Установка модуля mod_http2.
Когда вы устанавливаете сам Apache, то модуль mod_http2 должен идти как зависимость.
Если у вас нет модуля mod_http2, то обязательно его установите. Для установки модуля mod_http2 воспользуйтесь командой:
$. sudo yum install mod_http2
2. Установка модуля mod_ssl.
Модуль mod_ssl нужен для того чтобы успешно использовать SSL сертификат для вашего сайта и ваш сайт работал не протоколу http, а по протоколу https. Если у вас нет этого модуля, то его можно установить командой:
$. sudo yum install mod_ssl
Если вы на своем сайте не планируете использовать SSL сертификат, то mod_ssl можете не устанавливать.
3. Проверка включен ли HTTP/2.
Перед настройкой HTTP/2 давайте сначала убедимся что в данный момент HTTP/2 у нас не работает. Команда для проверки:
$. curl --http2 --head http://localhost | grep HTTP
Как видим сейчас у нас используется только протокол HTTP/1.1
4. Проверка включен ли модуль HTTP/2 в Apache.
На этом этапе нужно убедится в том что модуль HTTP/2 подгружается во время запуска Apache. Для проверки воспользуемся командой:
$. cat /etc/httpd/conf.modules.d/10-h2.conf
В результате вы должны получить - LoadModule http2_module modules/mod_http2.so
Это значит что модуль подгружается во время запуска Apache.
5. Включаем HTTP/2.
Теперь настала очередь включить протокол HTTP/2.
Если вы не используете виртуальные хосты, то вам нужно открыть основной конфигурационный файл Apache httpd.conf который находится по пути /etc/httpd/conf и в начале файла прописать строку:
Protocols h2 h2c http/1.1
Ну а если вы используете виртуальные хосты то вам нужно открыть конфигурационный файл вашего сайта и прописать в него тот же параметр.
<VirtualHost ...>
ServerName it-inzhener.com
Protocols h2 h2c http/1.1
</VirtualHost>
После сохраните файл и обязательно перезапустить веб сервер Apache.
$. service httpd restart
Описания параметров протокола.
- h2 - указывает вер серверу Apache поддерживать протокол HTTP/2 через SSL/TLS.
- h2c - указывает вер серверу Apache поддерживать HTTP/2 через TCP.
- http/1.1 - указывает вер серверу, что если клиент не принимает HTTP/2, тогда обслуживать запрос через протокол HTTP/1.1.
6. Повторна проверка включен ли протокол HTTP/2.
После всего что мы сделали теперь давайте проверим, для этого воспользуемся той же командой которую использовали в третьем пункте.
$. curl --http2 --head http://localhost | grep HTTP
Как видим в результате теперь у нас протокол HTTP/2 успешно работает на нашем сайте.
Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.