CS 정리

BunkerWeb, 도입 시 겪은 이슈: HTTP/2 프로토콜

문쿼리 2025. 7. 29. 01:22

 

BunkerWeb 이란

BunkerWeb은 보안에 특화된 리버스 프록시로, 기존 Nginx를 대체할 수 있는 솔루션

Docker나 Kubernetes 환경에 최적화되어 있어 컨테이너 기반 시스템에서 빠르게 적용할 수 있는 장점이 있음

 

주요 기능

 

  • WAF 내장 (ModSecurity + CRS)
  • HTTPS 자동 구성 (Let's Encrypt)
  • 보안 헤더 자동 삽입
  • Rate limiting / DDoS 대응
  • 로그 및 모니터링 지원

도입 상황

 

  • Nginx 보안 설정이 번거로울 때
  • HTTPS 자동 갱신이 필요할 때
  • 최소한의 설정으로 웹 보안을 강화하고 싶을 때

도입 시 겪은 문제: HTTP/2 프로토콜 오류

DEV 환경에 도입한 상태로 테스트 중 스크립트에서 오류가 발생함

net::ERR_HTTP2_PROTOCOL_ERROR 200 (OK)

응답 상태는 200 OK지만, 브라우저에서는 HTTP/2 프로토콜 오류로 처리되어 정상적으로 데이터를 주고받지 못하는 이슈

 

오류 발생 원인

 

  • BunkerWeb과 백엔드의 압축 설정 중복
    → 예: Gzip이나 Brotli가 중복 적용되어 바디 해석 오류 발생
  • HTTP/2 전용 헤더 구조 위반
    → Content-Length, Transfer-Encoding 등의 헤더 충돌
  • TLS/ALPN 설정 누락 또는 비호환 응답

** 이 중 1번 째 케이스는 아닌것으로 확인됨.

해결 방향

  1. BunkerWeb에서 압축 비활성화하거나 백엔드와 역할 분리
  2. 불필요한 응답 헤더 제거 (Content-Length, Transfer-Encoding 등)
  3. bunkerweb.toml에서 http2 = true 설정을 명시
  4. curl --http2 등을 활용해 로컬에서 직접 테스트

2번과 3번 테스트 예정!

 

 

 

 

'CS 정리' 카테고리의 다른 글

Feign 사용해보기  (1) 2025.08.11
Java + Kotlin 혼용 개발  (0) 2025.07.31
HTTPS(HyperText Transfer Protocol + SSL/TLS)  (0) 2025.07.23
OAuth2의 4가지 Grant Type  (0) 2025.07.21
Spring Security + Keycloak으로 SSO 구현하기  (0) 2025.07.13