6.8.10. X-Forwarded 헤더 사용
HAProxy Ingress 컨트롤러를 구성하여 Forwarded
및 X-Forwarded-For
를 포함한 HTTP 헤더 처리 방법에 대한 정책을 지정합니다. Ingress Operator는 HTTPHeaders
필드를 사용하여 Ingress 컨트롤러의 ROUTER_SET_FORWARDED_HEADERS
환경 변수를 구성합니다.
프로세스
Ingress 컨트롤러에 대한
HTTPHeaders
필드를 구성합니다.다음 명령을 사용하여
IngressController
리소스를 편집합니다.$ oc edit IngressController
spec
에서HTTPHeaders
정책 필드를Append
,Replace
,IfNone
또는Never
로 설정합니다.apiVersion: operator.openshift.io/v1 kind: IngressController metadata: name: default namespace: openshift-ingress-operator spec: httpHeaders: forwardedHeaderPolicy: Append
사용 사례 예
클러스터 관리자는 다음을 수행할 수 있습니다.
Ingress 컨트롤러로 전달하기 전에
X-Forwarded-For
헤더를 각 요청에 삽입하는 외부 프록시를 구성합니다.헤더를 수정하지 않은 상태로 전달하도록 Ingress 컨트롤러를 구성하려면
never
정책을 지정합니다. 그러면 Ingress 컨트롤러에서 헤더를 설정하지 않으며 애플리케이션은 외부 프록시에서 제공하는 헤더만 수신합니다.외부 프록시에서 외부 클러스터 요청에 설정한
X-Forwarded-For
헤더를 수정하지 않은 상태로 전달하도록 Ingress 컨트롤러를 구성합니다.외부 프록시를 통과하지 않는 내부 클러스터 요청에
X-Forwarded-For
헤더를 설정하도록 Ingress 컨트롤러를 구성하려면if-none
정책을 지정합니다. HTTP 요청에 이미 외부 프록시를 통해 설정된 헤더가 있는 경우 Ingress 컨트롤러에서 해당 헤더를 보존합니다. 요청이 프록시를 통해 제공되지 않아 헤더가 없는 경우에는 Ingress 컨트롤러에서 헤더를 추가합니다.
애플리케이션 개발자는 다음을 수행할 수 있습니다.
X-Forwarded-For
헤더를 삽입하는 애플리케이션별 외부 프록시를 구성합니다.다른 경로에 대한 정책에 영향을 주지 않으면서 애플리케이션 경로에 대한 헤더를 수정하지 않은 상태로 전달하도록 Ingress 컨트롤러를 구성하려면 애플리케이션 경로에 주석
haproxy.router.openshift.io/set-forwarded-headers: if-none
또는haproxy.router.openshift.io/set-forwarded-headers: never
를 추가하십시오.참고Ingress 컨트롤러에 전역적으로 설정된 값과 관계없이 경로별로
haproxy.router.openshift.io/set-forwarded-headers
주석을 설정할 수 있습니다.