피드로 돌아가기
Proxying RabbitMQ Management UI Through Nginx (Fixing the %2F Problem)
Dev.toDev.to
Infrastructure

Nginx $request_uri 활용을 통한 RabbitMQ Management UI %2F 디코딩 이슈 해결

Proxying RabbitMQ Management UI Through Nginx (Fixing the %2F Problem)

Aswindanu Anwar2026년 7월 1일1intermediate

Context

RabbitMQ Management UI를 Nginx Reverse Proxy의 서브 패스로 구성 시 발생하는 API 호출 실패 문제 분석. Nginx의 기본 동작인 URI Normalization으로 인해 Virtual Host를 의미하는 %2F가 /로 디코딩되어 경로 파손 발생.

Technical Solution

  • $uri 변수의 자동 디코딩 특성으로 인한 merge_slashes off 및 rewrite 설정의 한계 식별
  • 클라이언트 요청 원본을 그대로 유지하는 $request_uri 변수를 활용한 데이터 보존 전략 채택
  • API 경로(/rabbitmq/api/)에 대해 if 블록과 $request_uri 정규식을 결합하여 원본 URI를 Backend로 전달하는 구조 설계
  • 정적 자산 및 일반 UI 페이지는 기존 rewrite 규칙을 적용하여 경로 최적화 달성
  • proxy_buffering off 설정을 통해 Management UI의 실시간 응답성 확보

1. Reverse Proxy 설정 시 URL-encoded 문자(%2F 등)가 유지되어야 하는지 확인

2. Nginx $uri 변수가 자동 디코딩을 수행한다는 점을 인지하고 raw URI가 필요할 시 $request_uri 사용 검토

3. API 경로와 정적 자산 경로를 분리하여 각 특성에 맞는 proxy_pass 전략 수립

원문 읽기