클라이언트 요청 본문을 늘리고, 추가 헤더를 허용하도록 CORS를 활성화하고, WebSocket을 사용하여 Amazon EKS와 함께 작동하도록 NGINX 인그레스 컨트롤러를 구성하려면 어떻게 해야 하나요?

2분 분량
0

내 Amazon Elastic Kubernetes Service(Amazon EKS) 클러스터로 클라이언트 요청 본문의 크기를 늘리도록 NGINX 인그레스 컨트롤러를 구성하고 싶습니다. 또한 추가 헤더를 허용하기 위해 교차 출처 리소스 공유(CORS)를 활성화하고 NGINX 인그레스 컨트롤러와 함께 WebSocket을 사용하고 싶습니다.

간략한 설명

다음 구성 옵션 중 하나를 선택합니다.

  • 클라이언트 요청 본문의 크기를 늘리려면 최대 본문 크기 구성 단원의 단계를 완료합니다.
  • 추가 헤더를 허용하도록 CORS를 활성화하려면 CORS 활성화 단원의 단계를 완료합니다.
  • NGINX 인그레스 컨트롤러와 함께 WebSocket을 사용하려면 WebSocket 사용 단원의 단계를 완료합니다.

해결 방법

최대 본문 크기 구성

본문 크기 요청이 클라이언트 요청 본문의 최대 허용 크기를 초과하면 NGINX 인그레스 컨트롤러가 HTTP 413 오류를 반환합니다. client_max_body_size 매개 변수를 사용하여 더 큰 크기를 구성합니다.

nginx.ingress.kubernetes.io/proxy-body-size: 8m

참고: proxy-body-size의 기본값은 1M입니다. 숫자를 필요한 크기로 변경해야 합니다.

참고: 경우에 따라 모든 게시물 본문 데이터 및 파일 업로드의 최대 크기를 늘려야 할 수도 있습니다. PHP의 경우 php.ini 구성에서 post_max_sizeupload_max_file_size 값을 늘려야 합니다.

CORS 활성화

인그레스 규칙에서 CORS를 활성화하려면 다음 어노테이션을 추가합니다.

nginx.ingress.kubernetes.io/enable-cors: "true"

다음 예에서는 X-Forwarded-For 헤더가 허용됨을 보여 줍니다.

nginx.ingress.kubernetes.io/cors-allow-headers: "X-Forwarded-For"

NGINX 인그레스 컨트롤러 문서의 CORS 활성화(GitHub 웹 사이트) 단원에서 다른 헤더를 찾을 수 있습니다.

WebSocket 사용

NGINX는 요구 사항 없이 WebSocket(NGINX 웹 사이트의) 버전 1.3 이상을 지원합니다. 연결이 끊어지지 않도록 proxy-read-timeoutproxy-send-timeout 값을 늘려야 합니다.

다음 예에서는 proxy read timeoutproxy send timeout에 대해 120초가 설정됩니다.

nginx.ingress.kubernetes.io/proxy-read-timeout: "120"
nginx.ingress.kubernetes.io/proxy-send-timeout: "120"

참고: 앞의 두 어노테이션의 기본값은 60초입니다.


AWS 공식
AWS 공식업데이트됨 2년 전
댓글 없음

관련 콘텐츠