Настраиваем 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