API 게이트웨이 URL 재작성

API 게이트웨이 URL 재작성 (Reroute with API Gateway)

이 문서는 Consul API 게이트웨이로 HTTP 요청을 재라우팅(rewrite)하도록 구성하는 방법을 설명해요. URLRewrite 필터를 사용해 특정 조건이 충족될 때 URL을 다시 작성하는 예제를 다룰게요.

출처: 문서

본문

이 문서는 Consul API 게이트웨이로 HTTP 요청을 재라우팅하도록 구성하는 방법을 설명합니다.

요구 사항 (Requirements)

  1. 요구 사항이 충족되었는지 확인합니다.
  2. 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/

더 알아보기 (Learn more)