Skip to content

2025/10/11 Nginx proxy_pass 뒤 슬래시(/)로 인한 307 리다이렉트 이슈 정리 (blocked:mixed-content) #1

@creepereye1204

Description

@creepereye1204
  • 증상

    • 설정: 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; 로 바꾸자.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions