Настраиваем HTTP2 для веб-сервера Apache под Linux CentOS 7

Почему HTTP/2 и чем он лучше HTTP/1.1

HTTP/2 активно используется с 2015 года. Главный недостаток HTTP/1.1 в том, что на загрузку каждого файла ему нужно отдельное соединение. Одна веб-страница может подключать несколько CSS-файлов, несколько JS-файлов и много картинок. Открытие этих соединений и загрузка каждого файла по отдельности тормозит загрузку страницы. А в HTTP/2 соединение одно, что существенно ускоряет загрузку. HTTP/2 — это не альтернатива HTTP/1.1. Веб-сервер будет отвечать и про протоколу HTTP/1.1, т.е. работа с браузерами, которые не поддерживают HTTP/2 не нарушится. Итак, для начала обновляем операционную систему.

yum update

Доустанавливаем обязательный EPEL, обновляем:
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Устанавливаем репозиторий codeit.guru:
vi /etc/yum.repos.d/codeit.el7.repo

[CodeIT]
name=CodeIT repo
baseurl=https://repo.codeit.guru/packages/centos/7/$basearch
enabled=1
gpgkey=https://repo.codeit.guru/RPM-GPG-KEY-codeit
gpgcheck=1


yum install httpd mod-ssl

Устанавливаем репозиторий remi:

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Устанавливаем apache и php нужной версии (В данном случае 7.3, так как это поддерживаемая сейчас ветка, можно и другие версии установить), запускаем:
Подключаем SSL-сертификаты
yum install yum-utils
yum-config-manager --enable remi-php73
yum install php php-mbstring   (и прочие необходимые модули)

Файрвол:

firewall-cmd --add-service http
firewall-cmd --add-service https
firewall-cmd --runtime-to-permanent

Создаём тест, проверяем работу:
vi /var/www/html/index.php

<?php
phpinfo();

chown -R apache:apache /var/www/html/index.php

Там же можем увидеть, что mod_http2 mod_proxy_http2 присутствуют в модулях apache.

В результате имеем VPS с современными версиями LAMP:

# php -v
PHP 7.3.18 (cli) (built: May 12 2020 08:04:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.18, Copyright (c) 1998-2018 Zend Technologies

# apachectl -v
Server version: Apache/2.4.43 (codeit)
Server built:   May  7 2020 12:24:30


Идём в https://http.itsoft.ru
Проверяем там поддержку HTTP/2

Обновляем curl
rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-2-1.rhel7.noarch.rpm
vi /etc/yum.repos.d/city-fan.org.repo 
ставим enabled=1


yum install curl libcurl
systemctl restart httpd
Телеграмм ITSOFT