나를 기록하다
article thumbnail
반응형

Nginx로 리버스 프록시를 설정하면서 여러 시행 착오를 겪었다.

특히 단순해 보이지만 경로의 마지막에 '/'를 붙이는 것과 붙이지 않는 것의 차이를 정리하겠다.

 

Nginx에서 경로 끝에 /를 붙이는 것과 붙이지 않는 것의 차이는 proxy_pass에서 다르게 동작한다.

경로 끝에 /가 붙는 경우

proxy_pass http://challet.world/;
  • 원본 요청 경로를 유지
  • 예를 들어, 클라이언트가 https://challet.world/eureka/somepath로 요청을 하면, 이 요청은 http://challet-discovery-spring:8761/somepath로 전달됨

즉, 클라이언트의 경로가 그대로 백엔드 서버로 전달함

 

nginx.conf

location /eureka/ {
    proxy_pass http://challet-discovery-spring:8761/;
}
 

위 설정에서 클라이언트가 /eureka/somepath로 접근하면, 백엔드에서는 http://challet-discovery-spring:8761/somepath로 요청이 전달됨

 

경로 끝에 /가 붙지 않는 경우

proxy_pass http://challet.world;
  • Nginx가 클라이언트의 요청 경로를 백엔드에 전달할 때 기준 경로를 변경
  • 예를 들어, 클라이언트가 https://challet.world/eureka/somepath로 요청을 하면, 이 요청은 http://challet-discovery-spring:8761/eureka/somepath로 전달됨

즉, Nginx의 location에서 정의된 경로(/eureka)가 백엔드 URL에 추가됨

 

 

nginx.conf

location /eureka/ {
    proxy_pass http://challet-discovery-spring:8761;
}

이 경우 클라이언트가 /eureka/somepath로 접근하면, 백엔드에서는 http://challet-discovery-spring:8761/eureka/somepath로 요청이 전달됨

즉, 경로가 중복될 수 있음

 

정리
경로 끝에 /가 붙는 경우: Nginx는 경로를 그대로 전달
/eureka/somepath -> http://challet-discovery-spring:8761/somepath
경로 끝에 /가 붙지 않는 경우: Nginx가 location 블록의 경로를 추가하여 전달
/eureka/somepath -> http://challet-discovery-spring:8761/eureka/somepath

 

반응형

'CI,CD' 카테고리의 다른 글

[Nginx] Jenkins, Grafana, Kibana Reverse Proxy 설정 방법  (0) 2024.09.23
profile

나를 기록하다

@prao

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...