Рейтинг:1

Как включить http/2 из пакета Centos/yum?

флаг cn

Я использую следующую версию Apache на Centos 7:

httpd.x86_64 2.4.6-97.el7.centos.5 @обновления

httpd-tools.x86_64 2.4.6-97.el7.centos.5 @обновления

Это стандартный пакет, поставляемый с системой. Я хочу иметь возможность поддерживать http/2, но инструкции, которые я нашел, требуют, чтобы я создал/настроил программное обеспечение с этим параметром. Однако я использую стандартный пакет для простоты обновления. Есть ли способ включить эту функцию и по-прежнему использовать то же дерево обновлений? Или есть лучший пакет/репозиторий для использования? Или есть способ настроить существующую установку для включения http 2.0? Я посмотрел и не увидел mod_http2.so - есть ли способ установить это, а затем включить его через конфигурацию, чтобы мне не пришлось пересобирать Apache с нуля?

ПРИМЕЧАНИЕ. Существует существующий вопрос ( HTTP/2 в CentOS 7 на Apache с PHP7 ) об этом, но ему уже 5 лет, и я надеюсь на более обновленный ответ, поскольку в то время было сказано, что http/2 не был таким стабильным/поддерживаемым

djdomi avatar
флаг za
если он не включен по умолчанию в debian, вам нужно добавить дополнительный модуль в apache, yum сможет его найти, но я с ним не знаком
флаг in
Поскольку базовые версии дистрибутивов не получают обновлений функций для своих пакетов, а только исправления безопасности, связанный вопрос, скорее всего, все еще актуален.
Aussie avatar
флаг cn
Первый ответ на этот вопрос - гораздо лучший ответ на оба вопроса.
Рейтинг:1
флаг cl
A.B

CentOS7 по умолчанию привязан к Apache httpd 2.4.6, который не предоставляет mod_http2.so модуль для реализации HTTP/2.

Вот как это сделать с поддерживаемым софтом и без перекомпиляции:

  • включить Репозиторий коллекций программного обеспечения

    Это поддерживаемые дополнительные пакеты, включая более новые версии существующих пакетов. Они устанавливаются в отдельный каталог (обычно /опт/правая), чтобы они не конфликтовали с оригинальной версией. Это также означает, что нужно немного больше усилий, чтобы использовать некоторые из их функций.

    yum установить centos-релиз-scl
    

    Это установит новый репозиторий с дополнительными пакетами

  • Установить httpd24

    ням установить httpd24
    

    который в основном будет тянуть фактический пакет httpd24-httpd и что более важно для этого ответа, будет тянуть в свою очередь httpd24-libnghttp2: библиотека, реализующая протокол HTTP/2.

  • настроить более новую установку в своих собственных каталогах конфигурации

    Как и многие СКЛ пакеты, этот пакет предназначен для установки без конфликта с пакетом, который он заменяет, а не для его обновления. Большинство файлов конфигурации обычно находятся в /etc/httpd сейчас находятся в /опт/рх/httpd24/корень/и т.д./httpd.

    Поэтому, пожалуйста, скопируйте и адаптируйте (если в конфигурациях есть абсолютные ссылки на каталоги и т. д.) настройки на новом месте: /опт/рх/httpd24/корень/и т.д./httpd

    Эта версия поставляется с включенным HTTP/2:

    # grep -r http2 /opt/rh/httpd24/root/etc/httpd/
    /opt/rh/httpd24/root/etc/httpd/conf.modules.d/00-base.conf:LoadModule http2_module modules/mod_http2.so
    
  • проверить синтаксис и т. д.

    Это часть особенностей SCL. Необходимо выполнить подготовительные команды, чтобы использовать правильный путь и библиотеки для добавляемых компонентов.

    Интерактивно (но вместо этого можно сразу запустить неинтерактивную команду):

    # scl включить httpd24 -- bash -l
    

    Новая оболочка наследует дополнительную среду:

    # printenv |grep /opt/rh
    MANPATH=/opt/rh/httpd24/root/usr/share/man:
    LIBRARY_PATH=/opt/rh/httpd24/root/usr/lib64
    LD_LIBRARY_PATH=/opt/rh/httpd24/root/usr/lib64
    PATH=/opt/rh/httpd24/root/usr/bin:/opt/rh/httpd24/root/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/ bin:/sbin:/bin:/root/bin
    PKG_CONFIG_PATH=/opt/rh/httpd24/root/usr/lib64/pkgconfig
    

    и теперь может запускать такие команды, как:

    # httpd -v
    Версия сервера: Apache/2.4.34 (Red Hat)
    Сервер построен: 1 фев 2022 14:11:48
    
  • Переключить услугу

    системад службы уже созданы для использования этой новой среды, поэтому здесь не требуется ничего, связанного с предыдущей пулей.

    systemctl отключить --теперь httpd
    systemctl включить --now httpd24-httpd
    
Aussie avatar
флаг cn
Спасибо за отличный ответ!
A.B avatar
флаг cl
A.B
Если это решило ваш вопрос, не стесняйтесь помечать ответ как принятый ответ.
Рейтинг:-1
флаг za

См. инструкции Red Hat/Fedora здесь: https://www.ubuntupit.com/how-to-enable-http-2-in-apache-on-linux-system/

флаг in
Пожалуйста, не размещайте ссылки только на ответы. Они становятся бесполезными, когда ссылка умирает. Вместо этого опубликуйте суть ссылки и добавьте ссылку для справки.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.