-
증상
- 설정: proxy_pass http://bedrock:8888/; 처럼 뒤에 슬래시가 있음
- 결과: 업스트림이 리디렉션(주로 301/302/307)을 유발하거나, 경로가 재작성되면서 예기치 않은 307 리다이렉트가 발생할 수 있음
-
원인
- location 블록의 경로와 proxy_pass의 뒤 슬래시 유무가 합쳐져 요청 URI 재작성 규칙이 달라짐
- proxy_pass에 슬래시가 붙으면 location에서 매칭된 prefix를 제거하고 남은 URI만 업스트림으로 전달함
- 특정 애플리케이션/리버스 프록시 조합에서 이 재작성 때문에 경로가 바뀌고, 서버가 리다이렉트를 반환하여 307이 발생할 수 있음
-
해결
-
예시 설정
- location / { proxy_pass http://bedrock:8888; }
- 이렇게 하면 클라이언트가 보낸 원래 경로(/foo/bar 등)를 그대로 업스트림에 전달하고, 불필요한 리다이렉트 가능성을 줄임
-
참고 팁
- location /api/ 처럼 접두 경로를 쓸 때는, 의도한 경로 전달 방식을 기준으로 슬래시 유무를 선택해야 함
- 원본 경로를 최대한 그대로 유지하려면 대개 슬래시 없는 형태가 안전함
- 변경 후에도 307이 계속되면 업스트림 애플리케이션 레벨의 리다이렉트 규칙(예: 트레일링 슬래시 강제, HTTPS 강제)을 점검
한 줄 결론: 307을 피하려면 proxy_pass 뒤 슬래시를 제거해서 proxy_pass http://bedrock:8888; 로 바꾸자.
증상
원인
해결
예시 설정
참고 팁
한 줄 결론: 307을 피하려면 proxy_pass 뒤 슬래시를 제거해서 proxy_pass http://bedrock:8888; 로 바꾸자.