8.9.19. HTTP 헤더 대소문자 변환
HAProxy 소문자 HTTP 헤더 이름(예: Host: xyz.com 을 host: xyz.com )으로 변경합니다. 기존 애플리케이션이 HTTP 헤더 이름의 대문자에 민감한 경우 Ingress Controller spec.httpHeaders.headerNameCaseAdjustments API 필드를 사용하여 기존 애플리케이션을 수정할 때 까지 지원합니다.
OpenShift Container Platform에는 HAProxy 2.8이 포함되어 있습니다. 이 웹 기반 로드 밸런서 버전으로 업데이트하려면 spec.httpHeaders.headerNameCaseAdjustments 섹션을 클러스터의 구성 파일에 추가해야 합니다.
클러스터 관리자는 oc patch 명령을 입력하거나 Ingress 컨트롤러 YAML 파일에서 HeaderNameCaseAdjustments 필드를 설정하여 HTTP 헤더 케이스를 변환할 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc)가 설치되어 있습니다. -
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
프로세스
oc patch명령을 사용하여 HTTP 헤더를 대문자로 설정합니다.다음 명령을 실행하여 HTTP 헤더를
host에서Host로 변경합니다.$ oc -n openshift-ingress-operator patch ingresscontrollers/default --type=merge --patch='{"spec":{"httpHeaders":{"headerNameCaseAdjustments":["Host"]}}}'주석을 애플리케이션에 적용할 수 있도록
Route리소스 YAML 파일을 생성합니다.my-application이라는 경로 예apiVersion: route.openshift.io/v1 kind: Route metadata: annotations: haproxy.router.openshift.io/h1-adjust-case: true1 name: <application_name> namespace: <application_name> # ...- 1
- Ingress 컨트롤러가 지정된 대로
호스트요청 헤더를 조정할 수 있도록haproxy.router.openshift.io/h1-adjust-case를 설정합니다.
Ingress 컨트롤러 YAML 구성 파일에서
HeaderNameCaseAdjustments필드를 구성하여 조정을 지정합니다.다음 예제 Ingress 컨트롤러 YAML 파일은 적절한 주석이 달린 경로에 대해 HTTP/1 요청에 대해
호스트헤더를Host로 조정합니다.Ingress 컨트롤러 YAML 예시
apiVersion: operator.openshift.io/v1 kind: IngressController metadata: name: default namespace: openshift-ingress-operator spec: httpHeaders: headerNameCaseAdjustments: - Host다음 예제 경로에서는
haproxy.router.openshift.io/h1-adjust-case주석을 사용하여 HTTP 응답 헤더 이름 대소문자 조정을 활성화합니다.경로 YAML의 예
apiVersion: route.openshift.io/v1 kind: Route metadata: annotations: haproxy.router.openshift.io/h1-adjust-case: true1 name: my-application namespace: my-application spec: to: kind: Service name: my-application- 1
haproxy.router.openshift.io/h1-adjust-case를 true로 설정합니다.