image.png

스프링 클라우드 게이트 공식 문서에 따르면 필터 체인의 마지막에 Proxy Filter가 있고 해당 필터에서 프록시를 진행한다고 설명합니다. 이번 글에서는 스프링 클라우드 게이트웨이가 어떻게 프록시 필터를 구성하고 프록시를 진행하는지 알아보겠습니다.

Proxy 필터는 어디에 있는가?

스프링 클라우드 게이트웨이의 실제 Proxy 역할은 NettyRoutingFilterNettyWriteResponseFilter 가 담당합니다.

NettyRoutingFilter

NettyWriteResponseFilter

필터 체인 내 실행 순서

스프링 클라우드 게이트웨이의 필터 체인에서 Proxy 동작 시점은 다음과 같습니다:

  1. Pre 필터 (GlobalFilter, GatewayFilter): 인증, 로깅, 라우팅 결정 등의 선처리
  2. NettyRoutingFilter:

<aside> 💡

Route 정보란?

Route 정보(Route)는 현재 요청(Request)을 어떤 백엔드 서비스(URI)로 라우팅(프록시)할지 결정하기 위한 정보 객체입니다.

org.springframework.cloud.gateway.route.Route 객체로 표현되며, 다음 정보를 포함합니다:

즉, “어떤 요청을 받았을 때 어떤 백엔드 URI로 전달하고, 어떤 필터 체인을 적용할지”의 결정된 결과입니다.

</aside>

  1. NettyWriteResponseFilter:
  2. Post 필터 (GlobalFilter, GatewayFilter): 응답 수정, 로깅 등의 후처리 가능

Proxy 필터의 특징