ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Nginx HTTP/2 모듈 활성화 방법 및 장점
    LEPM/nginx 2025. 3. 16. 18:07

    HTTP/2의 장점

    1. 이진 프로토콜 (Binary Protocol)
      • 텍스트 기반인 HTTP/1.1과 달리 데이터를 이진 형식(0과 1)으로 전송하여 오류 발생 가능성을 줄이고 전송 효율성을 개선했습니다.
    2. 헤더 압축 (Header Compression)
      • 응답 헤더를 압축하여 전송 시간을 단축합니다.
    3. 지속적·다중화 연결 (Persistent Multiplexed Connections)
      • 단일 연결로 여러 리소스(HTML, CSS, JS, 이미지 등)를 동시에 전송 가능합니다.
      • HTTP/1.1은 각 리소스마다 별도 연결이 필요했지만, HTTP/2는 연결 수를 크게 줄여 성능을 향상시킵니다.
    4. 서버 푸시 (Server Push)
      • 클라이언트 요청 전에 서버가 필요한 리소스(스크립트, 스타일시트 등)를 미리 전송할 수 있습니다.

    HTTP/1.1 vs HTTP/2 연결 방식 비교

    • HTTP/1.1:
      index.html, style.css, script.js를 로드하려면 3개의 별도 연결이 필요합니다. 브라우저의 동시 연결 제한으로 인해 지연이 발생할 수 있습니다.
    • HTTP/2:
      단일 연결로 모든 리소스를 다중화 스트림을 통해 전송합니다. 연결 설정 오버헤드가 없어 효율적입니다.

    Nginx에서 HTTP/2 활성화 방법

    1. 필수 조건: SSL/TLS 설정

    • HTTP/2는 HTTPS(SSL/TLS)가 필수입니다.
    • 테스트용 자체 서명 인증서 생성 예시:
      # SSL 디렉토리 생성
      sudo mkdir /etc/nginx/ssl
      
      # 개인키와 인증서 생성 (테스트용)
      sudo openssl req -x509 -nodes -days 10 -newkey rsa:2048 \
        -keyout /etc/nginx/ssl/self.key \
        -out /etc/nginx/ssl/self.crt

    2. Nginx 설정 파일 수정

    • 기존 listen 80;을 **SSL 포트(443)**로 변경하고 http2 모듈을 추가합니다:
      # HTTP(80포트) 요청을 HTTPS로 강제 전환
      server {
          listen 80;
          server_name example.com;
          return 301 https://$host$request_uri;  # 301 리다이렉트
      }
      
      server {
          listen 443 ssl http2;  # SSL + HTTP/2 활성화
          server_name example.com;
      
          # SSL 인증서 경로 지정
          ssl_certificate /etc/nginx/ssl/self.crt;
          ssl_certificate_key /etc/nginx/ssl/self.key;
      
          # 기타 설정 유지...
      }

    3. Nginx 재시작 및 확인

    • 설정 적용을 위해 Nginx 재시작:
      sudo systemctl restart nginx
    • 브라우저에서 https://도메인 접속 후 개발자 도구 > 네트워크 탭에서 Protocol 항목이 h2(HTTP/2)로 표시되는지 확인합니다.

    주의사항

    • 상용 환경에서는 Let's Encrypt 등의 신뢰된 인증서를 사용해야 합니다.
    • 자체 서명 인증서는 브라우저에서 보안 경고를 표시하므로 테스트용으로만 사용합니다.
    • HTTP/2를 지원하지 않는 클라이언트는 자동으로 HTTP/1.1로 폴백됩니다.

    'LEPM > nginx' 카테고리의 다른 글

    application/octet-stream  (3) 2024.09.10

    댓글

Designed by Tistory.