카테고리 없음

[Spring Cloud] Api Gateway 에서 uri prefix 제거하기

Geunny 2022. 9. 7. 23:27
반응형

MSA 환경에서 Spring Cloud 의  Api Gateway를 사용하는 경우

각 서비스의 url 을 로드벨런싱 해주기 위해 host:port/서비스이름/~~ 형태로 서비스를 호출하게 된다.

 

이때 '서비스이름' 에 해당하는 url 때문에 각 MSA 컨트롤러에 해당 url 정보를 매핑해줘야 하는 번거로움이 있을수 있다.

 

이러한 번거로움을 Api Gateway 설정파일의 filter값에 아래 데이터를 추가해 줌으로서 번거로움을 덜수 있다.

 

- id: user-service
  uri: lb://USER-SERVICE
  predicates:
    - Path=/user-service/login
    - Method=POST
  filters:
    - RemoveRequestHeader=Cookie
    - RewritePath=/user-service/(?<segment>.*), /$\{segment}

현재 연습중인 프로젝트 에서 user-service 라는 MS 에서 호출 prefix로 user-service 값을 넘겨주고 있다.

아래 filters 의 RewritePath 를 입력해 주면 해당 콤마 앞에 형태로 gateway에 들어오는 uri 요청은 , 뒤에 있는 uri 형태로 변경되어 해당 MS 에 전달되게 된다.

 

여기서 사용되는 uri value 는 정규식(regexp) 형태로 작성해 주면 된다.