웹사이트 검색

Nginx에서 HTTP/2.0을 활성화하는 방법


HTTP/2HTTP 프로토콜의 최신 표준이며 HTTP/1.1의 후속 버전입니다. 일반적으로 웹 개발자와 사용자에게 제공되는 이점으로 인해 점점 인기가 높아지고 있습니다. 이는 HTTP/1.1의 모든 핵심 기능을 지원하여 HTTP 의미론에 최적화된 전송을 제공하지만 여러 면에서 더 효율적인 것을 목표로 합니다.

HTTP/2 외에도 웹사이트/애플리케이션을 최적화할 수 있는 더 많은 가능성을 제공하는 많은 기능이 있습니다. 진정한 다중화 및 동시성, 더 나은 헤더 압축(바이너리 인코딩), 더 나은 우선순위 지정, 더 나은 흐름 제어 메커니즘, 그리고 서버가 클라이언트에 응답을 푸시할 수 있게 해주는 "서버 푸시"라는 새로운 상호 작용 모드를 제공합니다. . 말할 것도 없이 HTTP/2는 Google의 실험적인 SPDY 프로토콜을 기반으로 합니다.

따라서 HTTP/2의 주요 초점은 전체 웹페이지 로딩 시간을 줄여 성능을 향상시키는 것입니다. 또한 HTTP/2의 경우 SSL/TLS 암호화가 필수이므로 네트워크 및 서버 리소스 사용은 물론 보안에도 중점을 둡니다.

이 문서에서는 Linux 서버에서 HTTP/2 지원과 함께 Nginx를 활성화하는 방법을 알아봅니다.

전제 조건:

  • ngx_http_v2_module 모듈로 빌드된 NGINX 버전 1.9.5 이상의 작동 설치.
  • 사이트에서 SSL/TLS 인증서를 사용하는지 확인하세요. 인증서가 없으면 Let's Encrypt에서 얻거나 자체 서명된 인증서를 사용할 수 있습니다.

다음 가이드에 설명된 대로 NGINX를 설치하거나 LEMP 스택을 사용하여 배포할 수 있습니다.

  • CentOS 8에 Nginx를 설치하는 방법
  • CentOS 8에 LEMP 서버를 설치하는 방법
  • RHEL 8에 NGINX, MySQL/MariaDB 및 PHP를 설치하는 방법
  • Ubuntu 20.04에서 PhpMyAdmin을 사용하여 LEMP 스택을 설치하는 방법
  • Debian 10에 서버 블록(가상 호스트)과 함께 Nginx 설치
  • Linux에서 Nginx를 HTTP 로드 밸런서로 사용하는 방법

NGINX에서 HTTP/2.0을 활성화하는 방법

NGINX가 설치되어 있는 경우 다음 명령을 실행하여 ngx_http_v2_module 모듈로 빌드되었는지 확인하세요.

strings /usr/sbin/nginx | grep _module | grep -v configure| sort | grep ngx_http_v2_module

HTTPS가 구성된 NGINX에서 제공되는 웹 사이트/애플리케이션이 있으면 웹 사이트 가상 서버 블록(또는 가상 호스트) 파일을 엽니다. 편집.

vi /etc/nginx/conf.d/example.com.conf                    [On CentOS/RHEL]
sudo nano /etc/nginx/sites-available/example.com.conf    [On Ubuntu/Debian]

다음 스크린샷에 표시된 것처럼 모든 listen 지시문에 http2 매개변수를 추가하기만 하면 HTTP/2 지원을 활성화할 수 있습니다.

listen 443 ssl http2;

샘플 서버 블록 구성은 아래와 같습니다.


server {
        server_name example.com www.example.com;
        access_log  /var/log/nginx/example.com_access.log;
        error_log  /var/log/nginx/example.com_error.log;

        listen [::]:443 ssl ipv6only=on http2; # managed by Certbot
        listen 443 ssl http2; # managed by Certbot

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot    
}

파일의 변경 사항을 저장하고 닫습니다.

그런 다음 NGINX의 구성 구문을 확인하고, 괜찮다면 Nginx 서비스를 다시 시작하세요.

nginx -t
systemctl restart nginx

그런 다음 웹 브라우저를 열어 웹사이트가 HTTP/2를 통해 제공되는지 확인하세요.

http://www.example.com

HTTP 헤더에 액세스하려면 표시된 웹페이지를 마우스 오른쪽 버튼으로 클릭하고 옵션 목록에서 검사를 선택하여 개발자 도구를 연 다음 네트워크 탭을 클릭하고 새로고침하세요. 그 페이지.

사이트에서 사용 중인 프로토콜을 확인하려면 프로토콜 아래를 확인하세요. 프로토콜 헤더가 표시되지 않으면 헤더(예: 이름)를 마우스 오른쪽 버튼으로 클릭한 다음 < Strong>프로토콜을 목록에서 헤더로 표시합니다).

사이트가 HTTP/1.1에서 실행 중인 경우 프로토콜 아래에 다음 스크린샷과 같이 http/1.1이 표시됩니다.

HTTP/2에서 실행 중인 경우 프로토콜 아래에 다음 스크린샷과 같이 h2가 표시됩니다. 웹 서버에서 직접 제공되는 최신 콘텐츠를 보려면 브라우저 캐시를 비활성화할 수 있습니다.

그게 다야! 자세한 내용은 ngx_http_v2_module 모듈 설명서를 참조하세요. 아래 피드백 양식을 통해 주저하지 말고 질문해 주세요.