웹사이트 검색

Ubuntu 및 Debian의 Apache 웹 서버에서 HTTP/2를 활성화하는 방법


이 페이지에서

  1. 전제 조건
  2. mod_php 모듈 비활성화\n
  3. HTTP/2와 호환되는 Apache MPM 활성화\n
  4. Apache에서 HTTP/2 지원 활성화\n
  5. 링크

HTTP/2(Hypertext Transfer Protocol Version 2)는 2015년 RFC 7540에서 IETF 표준으로 게시된 HTTP 프로토콜의 최신 버전입니다. 프로토콜의 초점은 성능입니다. 특히 최종 사용자가 인식하는 대기 시간, 네트워크 및 서버 리소스 사용량입니다. 한 가지 주요 목표는 브라우저에서 웹 사이트로 단일 연결을 사용할 수 있도록 하는 것입니다. 프로토콜은 이전 버전과 호환되므로 HTTP 메서드, 상태 코드 및 의미 체계는 이전 버전의 프로토콜과 동일합니다. Apache는 버전 2.4.17부터 HTTP/2를 지원합니다. 이 자습서에서는 이미 작동하는 TLS 구성이 있고 선택한 Linux 배포판에 필수 Apache 버전이 설치되어 있고 Lets Encrypt 사용 방법을 알고 있거나 자체 서명 인증서.

이 튜토리얼은 Debian 11, Debian 10, Debian 9, Ubuntu 22.04 LTS, Ubuntu 20.04 LTS 및 Ubuntu 18.04 LTS에서 테스트되었습니다.

전제 조건

Apache에서 HTTP/2를 사용 설정하려면 다음 요구사항을 충족해야 합니다.

  • 먼저 서버에서 HTTPS를 활성화해야 합니다. 모든 주요 브라우저는 HTTPS를 통해서만 HTTP/2 사용을 허용합니다. 또한 TLS 프로토콜 버전 >= 1.2 와 최신 암호화 제품군이 필요합니다.\n
  • 다음으로 HTTP/2가 이 버전 이상에서 지원되므로 Apache 2.4.17 이상을 실행하고 있는지 확인하십시오.\n
  • 또한 클라이언트/브라우저가 실제로 HTTP/2를 지원하는지 확인하세요.\n

mod_php 모듈 비활성화

다음 단계에서 Apache MPM 모듈을 mpm_event로 전환하기 전에 이전 mod_php 모드를 비활성화하고 최신 PHP-FPM 모드로 교체해야 합니다. 명령은 운영 체제 버전마다 다르므로 설치된 시스템과 일치하는 명령을 사용하십시오.

우분투 22.04 LTS

sudo apt-get install php8.1-fpm
sudo a2dismod php8.1
sudo a2enconf php8.1-fpm
sudo a2enmod proxy_fcgi

데비안 11

sudo apt-get install php7.4-fpm
sudo a2dismod php7.4
sudo a2enconf php7.4-fpm
sudo a2enmod proxy_fcgi

우분투 20.04 LTS

sudo apt-get install php7.4-fpm
sudo a2dismod php7.4
sudo a2enconf php7.4-fpm
sudo a2enmod proxy_fcgi

데비안 10

sudo apt-get install php7.3-fpm
sudo a2dismod php7.3
sudo a2enconf php7.3-fpm
sudo a2enmod proxy_fcgi

우분투 18.04 LTS

sudo apt-get install php7.2-fpm
sudo a2dismod php7.2
sudo a2enconf php7.2-fpm
sudo a2enmod proxy_fcgi

데비안 9

sudo apt-get install php7.0-fpm
sudo a2dismod php7.0
sudo a2enconf php7.0-fpm
sudo a2enmod proxy_fcgi

HTTP/2와 호환되는 Apache MPM 활성화

기본적으로 Apache는 prefork MPM을 사용합니다. 이 MPM은 HTTP/2와 호환되지 않으므로 최신 mpm_event 모듈로 교체해야 합니다.

먼저 mpm_prefork 모듈을 비활성화합니다.

sudo a2dismod mpm_prefork

그런 다음 mpm_event 모듈을 활성화합니다.

sudo a2enmod mpm_event

Apache에서 HTTP/2 지원 활성화

Apache에서 HTTP/2를 작동시키려면 SSL 및 HTTP/2 모듈을 활성화하고 로드해야 합니다. 이렇게 하려면 터미널에서 다음을 실행할 수 있습니다.

sudo a2enmod ssl

그리고

sudo a2enmod http2

이러한 새 모듈을 활성화하려면 다음을 실행해야 합니다.

sudo systemctl restart apache2

필요한 Apache 모듈을 활성화하고 로드한 후 Apache 구성 디렉토리로 이동하여 Apache 구성을 수정합니다.

Apache 웹 서버에서 HTTP/2를 활성화하려면 글로벌 Apache 구성 또는 특정 가상 호스트 내부에 다음 중 하나를 추가하십시오.

Protocols h2 http/1.1

다음은 일부 가상 호스트에서 HTTP/2를 활성화하는 데 사용할 수 있는 최소 가상 서버 구성입니다.

<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/public_html/example.com
SSLEngine on
SSLCertificateKeyFile /path/to/private.pem
SSLCertificateFile /path/to/cert.pem
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
Protocols h2 http/1.1
</VirtualHost>

서버가 HTTP/2를 지원하는지 확인하려면 브라우저 개발 도구를 사용할 수 있습니다. 아래는 https://example.com 도메인에서 실행 중인 HTTP/2를 보여주는 Google Chrome 및 Apple Safari 브라우저의 스크린샷입니다.

크롬

원정 여행

연결

  • RFC 7540
  • HTTP/2