본문 바로가기

Tech/[Trouble Shooting] Logs

Istio 환경에서 CORS Header Multiple Values 오류 (Envoy Proxy와 충돌)

MSA 환경에서 자주 발생하는 CORS 오류 중 하나인 Multiple Values.

기존까지는 발생할 때마다 Application Level과 Proxy Level 에서의 이중으로 처리하는 문제인 경우가 대부분이었다.

이번에 겪은 사례는 조금 황당해서 추후에 내가 참고할 수 있도록 남긴다.

 

일반적인 사례

  • 이미 Proxy Level 에서 CORS 헤더를 처리하고 있는데 Application Level 에서도 CORS 헤더를 이중으로 처리해 문제 발생.
  • 해결 방법 : Application Level 이나 Proxy Level 중 선택해 CORS 헤더 처리 로직 제거

CORS Multiple Values 오류, 일반적인 사례

 

 

내가 만났던 사례

  • Istio 내부 서비스 구성 요소 간 CORS 헤더 처리 중복 문제 발생
    • 이때, HTTP Method 오류 코드 없이 일반 MSA 서비스에 전달되는 트래픽이면 정상적으로 CORS 헤더 처리 가능
    • 다만, HTTP Method 오류 코드(404 Not Found, 503 Service Unavilable 등) 발생 시 Envoy Proxy가 관여하게 되면서 CORS 헤더 처리 중복 문제 발생
  • Confused Point : 기존에 잘 되던 매니페스트 파일 설정으로 안 돼서 Istio 구성을 잘못했나 삽질했었음. 애플리케이션 단의 서비스 제공 불가 문제로 503 Unavilable이 발생했고, 이를 Envoy Proxy가 핸들링하는 과정에서 CORS 헤더가 추가됨. 그래서 기존에 CORS 헤더를 처리하던 Istio와 충돌 발생.
  • 해결 방법 : Envoy Proxy Filter 를 활용하여 오류 핸들링 과정에서 중복된 CORS 헤더 제거 로직 추가

CORS Multiple Values 오류, 발생 경위