sysmerge IT

10 окт. 2019 г.

Centos 7 - Настройка http2 на Apache 2.4 без рекомпиляции Apache сервера - mod_http2

Если для активации http2 в nginx достаточно просто подключить сертификат и добавить опцию http2 в listen, то в случае с apache понадобится пересборка веб-сервера с опцией --enbale-http2.
Но можно обойтись и без! Для этого есть репозиторий от CodeIt с mod_http2.
Устанавливаем репозиторий:
# wget https://repo.codeit.guru/codeit.el`rpm -q --qf "%{VERSION}" $(rpm -q --whatprovides redhat-release)`.repo
# cp codeit.el7.repo /etc/yum.repos.d/
Устанавливаем сам модуль
# yum install mod_http2.x86_64
Загружены модули: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.sh.cvut.cz
 * epel: epel.mirror.liteserver.nl
 * extras: ftp.sh.cvut.cz
 * remi: mirror.serverion.com
 * remi-php55: mirror.serverion.com
 * remi-php56: mirror.serverion.com
 * remi-test: mirror.serverion.com
 * updates: ftp.sh.cvut.cz
Разрешение зависимостей
--> Проверка сценария
---> Пакет mod_http2.x86_64 0:1.15.3-1.codeit помечен для установки
--> Обработка зависимостей: libnghttp2 >= 1.21.1 пакета: mod_http2-1.15.3-1.codeit.x86_64
--> Обработка зависимостей: libnghttp2.so.14()(64bit) пакета: mod_http2-1.15.3-1.codeit.x86_64
--> Проверка сценария
---> Пакет libnghttp2.x86_64 0:1.31.1-2.el7 помечен для установки
--> Обработка конфликта: mod_http2-1.15.3-1.codeit.x86_64 конфликтует с httpd < 2.4.25-8
--> Перепроверка зависимостей с новыми параметрами.
--> Проверка сценария
---> Пакет httpd.x86_64 0:2.4.6-118.el7.centos помечен для обновления
--> Обработка зависимостей: httpd = 2.4.6-118.el7.centos пакета: 1:mod_ssl-2.4.6-118.el7.centos.x86_64
---> Пакет httpd.x86_64 0:2.4.41-4.codeit.el7 помечен как обновление
--> Обработка зависимостей: httpd-tools = 2.4.41-4.codeit.el7 пакета: httpd-2.4.41-4.codeit.el7.x86_64
--> Обработка зависимостей: httpd-filesystem = 2.4.41-4.codeit.el7 пакета: httpd-2.4.41-4.codeit.el7.x86_64
--> Обработка зависимостей: httpd-filesystem пакета: httpd-2.4.41-4.codeit.el7.x86_64
--> Обработка зависимостей: libbrotlienc.so.1()(64bit) пакета: httpd-2.4.41-4.codeit.el7.x86_64
--> Обработка зависимостей: libbrotlicommon.so.1()(64bit) пакета: httpd-2.4.41-4.codeit.el7.x86_64
--> Проверка сценария
---> Пакет brotli.x86_64 0:1.0.7-5.el7 помечен для установки
---> Пакет httpd-filesystem.noarch 0:2.4.41-4.codeit.el7 помечен для установки
---> Пакет httpd-tools.x86_64 0:2.4.6-118.el7.centos помечен для обновления
---> Пакет httpd-tools.x86_64 0:2.4.41-4.codeit.el7 помечен как обновление
---> Пакет mod_ssl.x86_64 1:2.4.6-118.el7.centos помечен для обновления
---> Пакет mod_ssl.x86_64 1:2.4.41-4.codeit.el7 помечен как обновление
--> Обработка зависимостей: sscg >= 2.2.0 пакета: 1:mod_ssl-2.4.41-4.codeit.el7.x86_64
--> Проверка сценария
---> Пакет sscg.x86_64 0:2.5.1-1.el7 помечен для установки
--> Обработка зависимостей: libpath_utils.so.1(PATH_UTILS_0.2.1)(64bit) пакета: sscg-2.5.1-1.el7.x86_64
--> Обработка зависимостей: libtalloc.so.2(TALLOC_2.0.2)(64bit) пакета: sscg-2.5.1-1.el7.x86_64
--> Обработка зависимостей: libpath_utils.so.1()(64bit) пакета: sscg-2.5.1-1.el7.x86_64
--> Обработка зависимостей: libtalloc.so.2()(64bit) пакета: sscg-2.5.1-1.el7.x86_64
--> Проверка сценария
---> Пакет libpath_utils.x86_64 0:0.2.1-32.el7 помечен для установки
---> Пакет libtalloc.x86_64 0:2.1.14-1.el7 помечен для установки
--> Обработка конфликта: httpd-2.4.41-4.codeit.el7.x86_64 конфликтует с apr < 1.5.0-1
--> Перепроверка зависимостей с новыми параметрами.
--> Проверка сценария
---> Пакет apr.x86_64 0:1.4.8-3.el7_4.1 помечен для обновления
---> Пакет apr.x86_64 0:1.5.2-1.el7.codeit помечен как обновление
--> Проверка зависимостей окончена

Зависимости определены

==================================================================================================
 Package                   Архитектура     Версия                           Репозиторий     Размер
==================================================================================================
Установка:
 mod_http2                 x86_64          1.15.3-1.codeit                  CodeIT          208 k
Обновление:
 apr                       x86_64          1.5.2-1.el7.codeit               CodeIT          111 k
 httpd                     x86_64          2.4.41-4.codeit.el7              CodeIT          1.4 M
Установка зависимостей:
 brotli                    x86_64          1.0.7-5.el7                      epel            318 k
 httpd-filesystem          noarch          2.4.41-4.codeit.el7              CodeIT           27 k
 libnghttp2                x86_64          1.31.1-2.el7                     epel             67 k
 libpath_utils             x86_64          0.2.1-32.el7                     base             28 k
 libtalloc                 x86_64          2.1.14-1.el7                     base             32 k
 sscg                      x86_64          2.5.1-1.el7                      epel             53 k
Обновление зависимостей:
 httpd-tools               x86_64          2.4.41-4.codeit.el7              CodeIT          1.3 M
 mod_ssl                   x86_64          1:2.4.41-4.codeit.el7            CodeIT          1.3 M

Итого за операцию
==================================================================================================
Установить  1 пакет  (+6 зависимых)
Обновить    2 пакета (+2 зависимых)

Объем загрузки: 4.8 M
Is this ok [y/d/N]: y

 Обратите внимание, что из репозитория CodeIt так же обновится и сам http сервер.
Так же я заменил старый /etc/httpd/conf.modules.d/00-proxy.conf на новый /etc/httpd/conf.modules.d/00-proxy.conf.rpmnew.

Готово, директива     Protocols h2 http/1.1 готова к использованию в конфигурации apache.