Як увімкнути HTTP/2 на Apache в Centos/Redhat - mod_http2
- Останнє оновлення: 3 Листопада 2023 р.
- Перегляди: 108
- Автор: Адмін

Колеги всім привіт.
Протокол 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 успішно працює на нашому сайті.
Дякую всім, я сподіваюся що вам моя стаття хоч чимось допомогла.