Centos Package/yum에서 http/2를 활성화하는 방법은 무엇입니까?

Centos Package/yum에서 http/2를 활성화하는 방법은 무엇입니까?

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.soCentOS7은 기본적으로 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/

관련 정보