Как включить HTTP/2 на Apache в Centos/Redhat - mod_http2

Как включить 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 enable http2

Если у вас нет модуля mod_http2, то обязательно его установите. Для установки модуля mod_http2 воспользуйтесь командой:

$. sudo yum install mod_http2


 

2. Установка модуля mod_ssl.

Модуль mod_ssl нужен для того чтобы успешно использовать SSL сертификат для вашего сайта и ваш сайт работал не протоколу http, а по протоколу https. Если у вас нет этого модуля, то его можно установить командой:

$. sudo yum install mod_ssl

centos enable http2

Если вы на своем сайте не планируете использовать SSL сертификат, то mod_ssl можете не устанавливать.


 

3. Проверка включен ли HTTP/2.

Перед настройкой HTTP/2 давайте сначала убедимся что в данный момент HTTP/2 у нас не работает. Команда для проверки:

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

centos enable http2

Как видим сейчас у нас используется только протокол HTTP/1.1


 

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

На этом этапе нужно убедится в том что модуль HTTP/2 подгружается во время запуска Apache. Для проверки воспользуемся командой:

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

centos enable 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 enable 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 enable http2

Как видим в результате теперь у нас протокол HTTP/2 успешно работает на нашем сайте.


 

Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.

ПОХОЖИЕ СТАТЬИ

Как создать пользователей в Linux, Centos 8, Redhat 8 (команда useradd)

Как создать пользователей в Linux, Centos 8, Redhat 8 (команда useradd)

СИСТЕМА
Сбросить пароль пользователя Linux, Centos 8, Redhat 8

Сбросить пароль пользователя Linux, Centos 8, Redhat 8

СИСТЕМА