Centos 7에서 다음 버전의 Apache를 실행하고 있습니다.
httpd.x86_64 2.4.6-97.el7.centos.5 @updates
httpd-tools.x86_64 2.4.6-97.el7.centos.5 @updates
이는 시스템과 함께 제공되는 기본 패키지입니다. 나는 http/2를 지원할 수 있기를 원하지만 내가 찾은 지침에 따르면 해당 매개변수를 사용하여 소프트웨어를 구축/구성해야 합니다. 그러나 저는 업데이트의 용이성을 위해 표준 패키지를 사용하고 있습니다. 이 기능을 활성화하고 동일한 업데이트 트리를 계속 사용할 수 있는 방법이 있습니까? 아니면 더 나은 패키지/저장소가 있습니까? 아니면 http 2.0을 활성화하도록 기존 설치를 구성할 수 있는 방법이 있습니까? 살펴보니 mod_http2.so가 보이지 않습니다. Apache를 처음부터 다시 빌드할 필요가 없도록 이를 설치한 다음 구성을 통해 활성화할 수 있는 방법이 있습니까?
참고: 기존 질문이 있습니다(PHP7을 사용하는 Apache의 CentOS 7에서 HTTP/2) 이것에 대해서는 5년이 지났고 그 당시 http/2가 안정적이거나 지원되지 않는다고 말했기 때문에 더 업데이트된 답변을 기대하고 있습니다.
답변1
mod_http2.so
CentOS7은 기본적으로 HTTP/2 구현을 위한 모듈을 제공하지 않는 Apache httpd 2.4.6에 고정되어 있습니다 .
재컴파일 없이 지원되는 소프트웨어를 사용하는 방법은 다음과 같습니다.
-
이는 기존 패키지의 최신 버전을 포함하여 지원되는 추가 패키지입니다.
/opt/rh
원래 버전과 충돌하지 않도록 별도의 디렉토리(보통 )에 설치됩니다 . 이는 또한 일부 기능을 사용하기 위해 좀 더 노력이 필요하다는 것을 의미합니다.yum install centos-release-scl
추가 패키지와 함께 새 저장소가 설치됩니다.
설치하다
httpd24
yum install httpd24
이는 대부분 실제 패키지를 가져오고 이 답변에서 더 중요한 것은 HTTP/2 프로토콜을 구현하는 라이브러리를
httpd24-httpd
차례로 가져오는 것입니다 .httpd24-libnghttp2
자체 구성 디렉터리에 최신 설치를 구성합니다.
많은 사람들처럼SCL패키지의 경우, 이 패키지는 업데이트하는 것이 아니라 대체하는 패키지와 충돌하지 않고 설치되도록 되어 있습니다. 일반적으로 에서 발견되는 대부분의 구성 파일은
/etc/httpd
이제 에서 발견됩니다/opt/rh/httpd24/root/etc/httpd
.따라서 설정을 복사하여 새 위치에 적용하십시오(구성 등에 절대 디렉토리 참조가 있는 경우).
/opt/rh/httpd24/root/etc/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 enable 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 Server version: Apache/2.4.34 (Red Hat) Server built: Feb 1 2022 14:11:48
서비스를 전환하세요
체계화된이 새로운 환경을 사용하기 위한 서비스가 이미 만들어졌으므로 여기서는 이전 항목과 관련된 내용이 필요하지 않습니다.
systemctl disable --now httpd systemctl enable --now httpd24-httpd
답변2
여기에서 Red Hat/Fedora 지침을 참조하세요.https://www.ubuntupit.com/how-to-enable-http-2-in-apache-on-linux-system/