본문 바로가기

인프라

Zuul API Gateway에서 504 Gateway Timeout 에러 문제 쉽게 해결하기

728x90

프론트엔드에서 서버 API를 호출할 때, 응답 시간이 1초를 넘으면 가끔 504 Gateway Timeout 에러가 뜨는 문제가 있었다.

문제가 왜 생겼을까?

프로젝트에서는 설정 파일이 두 개였다. 하나는 bootstrap.yml, 다른 하나는 application.yml인데, 두 파일에 타임아웃 관련 설정이 서로 달라서 충돌이 났다.

결국, API Gateway 쪽 설정이 제대로 적용되지 않고 기본값(매우 짧은 시간)으로 동작하면서 응답을 기다리지 않고 바로 에러가 난 거다.

어떻게 고쳤을까?

Zuul API Gateway에서 사용하는 Ribbon 설정에 연결 시간 제한과 응답 대기 시간을 명확히 늘려줬다.

ribbon:
  ConnectTimeout: 5000  # 연결 시도 제한 시간 5초 (5000ms)
  ReadTimeout: 10000    # 서버 응답 대기 시간 10초 (10000ms)

이 설정을 적용한 뒤로는, 응답이 1초를 넘겨도 504 에러 없이 정상 처리됐다.

마무리

Zuul과 Ribbon을 함께 쓸 때는 타임아웃 설정이 여러 설정 파일에서 어떻게 동작하는지 꼭 확인해야 한다. 서로 충돌하면 우리가 원하는 설정이 무시되어 예상치 못한 오류가 생길 수 있다. 

728x90
반응형