Як увімкнути HTTP/2 на Apache в Centos/Redhat - mod_http2

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

Колеги всім привіт.

Протокол 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 .

 

Зміст статті:

  1. Налаштування модуля mod_http2.
  2. Налаштування модуля mod_ssl.
  3. Перевірка чи увімкнено HTTP/2.
  4. Перевірка, чи модуль HTTP/2 в Apache.
  5. Включаємо HTTP/2.
  6. Повторна перевірка, чи увімкнено протокол HTTP/2.

 

1. Встановлення модуля mod_http2.

Коли ви встановлюєте сам Apache, модуль mod_http2 повинен йти як залежність.

centos увімкнути http2

Якщо у вас немає модуля mod_http2, то обов'язково його встановіть. Для встановлення модуля mod_http2 скористайтесь командою:

$. sudo yum install mod_http2


 

2. Налаштування модуля mod_ssl.

Модуль mod_ssl потрібен для того, щоб успішно використовувати SSL сертифікат для вашого сайту і ваш сайт працював не протоколом http, а протоколом https. Якщо у вас немає цього модуля, його можна встановити командою:

$. sudo yum install mod_ssl

centos увімкнути http2

Якщо ви на своєму сайті не плануєте використовувати сертифікат SSL, то mod_ssl можете не встановлювати.


 

3. Перевірка чи увімкнено HTTP/2.

Перед налаштуванням HTTP/2 давайте спочатку переконаємося, що в даний момент HTTP/2 у нас не працює. Команда для перевірки:

$. curl --http2 --head http://localhost | grep HTTP

centos увімкнути http2

Як бачимо зараз, у нас використовується тільки протокол HTTP/1.1


 

4. Перевірка, чи модуль HTTP/2 у Apache.

На цьому етапі потрібно переконатися, що модуль HTTP/2 підвантажується під час запуску Apache. Для перевірки скористаємося командою:

$. cat /etc/httpd/conf.modules.d/10-h2.conf

centos увімкнути http2

В результаті ви повинні отримати - 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

centos увімкнути http2

 

Ну а якщо ви використовуєте віртуальні хости, то вам потрібно відкрити конфігураційний файл вашого сайту і прописати в нього той же параметр.

<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

centos увімкнути http2

Як бачимо, в результаті тепер у нас протокол HTTP/2 успішно працює на нашому сайті.


 

Дякую всім, я сподіваюся що вам моя стаття хоч чимось допомогла.

СХОЖІ СТАТТІ

Скинути пароль користувача Linux, Centos 8, Redhat 8