인프라

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

user-anonymous 2023. 1. 29. 13:30
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
반응형