API 게이트웨이 URL 재작성
API 게이트웨이 URL 재작성 (Reroute with API Gateway)
이 문서는 Consul API 게이트웨이로 HTTP 요청을 재라우팅(rewrite)하도록 구성하는 방법을 설명해요. URLRewrite 필터를 사용해 특정 조건이 충족될 때 URL을 다시 작성하는 예제를 다룰게요.
출처: 문서
본문
이 문서는 Consul API 게이트웨이로 HTTP 요청을 재라우팅하도록 구성하는 방법을 설명합니다.
요구 사항 (Requirements)
- 요구 사항이 충족되었는지 확인합니다.
- Consul API 게이트웨이 CRD와 컨트롤러가 설치·적용되었는지 확인합니다. 자세한 내용은 설치 (Installation)를 참조하세요.
구성 (Configuration)
Route 구성에서 다음 필드를 지정합니다. 매개변수에 대한 자세한 내용은 Route 구성 참조를 참조하세요.
rules.filters.type: 특정 조건이 충족될 때 URL을 재작성하도록 Consul API 게이트웨이에 지시하려면 이 매개변수를URLRewrite로 설정합니다.rules.filters.urlRewrite:path구성을 지정합니다.rules.filters.urlRewrite.path: 일치 조건에 따라 인바운드 요청이 재작성되어야 하는 경로를 포함합니다.
경로가 후행 슬래시를 포함하거나 포함하지 않는 경로를 모두 수락하도록 구성하려면 각 경우를 처리하는 두 개의 별도 경로(route)를 만들어야 합니다.
예제 (Example)
다음 예제에서 /incoming-request-prefix/로의 요청은 /prefix-backend-receives/로 backendRef에 전달됩니다. 결과적으로 /incoming-request-prefix/request-path로의 요청은 /prefix-backend-receives/request-path로 backendRef가 받습니다.
route.yaml:
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: example-route
##...
spec:
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: api-gateway
rules:
- backendRefs:
. . .
filters:
- type: URLRewrite
urlRewrite:
path:
replacePrefixMatch: /prefix-backend-receives/
type: ReplacePrefixMatch
matches:
- path:
type: PathPrefix
value: /incoming–request-prefix/