Classic Load Balancer를 통해 요청할 때 HTTP 502 오류 문제를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 8월 29일

클라이언트가 Classic Load Balancer(CLB)를 통해 웹 사이트에 요청할 때 HTTP 502 오류가 발생합니다. 이 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

HTTP 502(잘못된 게이트웨이) 오류는 다음 이유 중 하나로 인해 발생할 수 있습니다.

  • EC2 인스턴스에서 실행되는 웹 서버 또는 연결된 백엔드 애플리케이션 서버가 Classic Load Balancer에서 구문 분석할 수 없는 메시지를 반환합니다.
  • 웹 서버 또는 연결된 백엔드 애플리케이션 서버가 자체 502 오류 메시지를 반환합니다.

이러한 502 오류의 출처를 찾으려면 다음을 수행합니다.

백엔드 응답이 ELB 502 오류의 출처인 경우 다음과 같은 이유로 문제가 발생할 수 있습니다.

  • 각 헤더 사이에 둘 이상의 CRLF가 포함된 응답.
  • 정수가 아닌 값을 포함하는 Content-Length 헤더를 포함하는 응답.
  • 본문 크기(바이트)가 Content-Length 헤더 값보다 더 큰 응답.

백엔드 서버에서 502 오류가 발생한 경우 애플리케이션 소유자에게 문의하세요. Classic Load Balancer에서 502 오류가 발생한 경우 백엔드의 HTTP 응답 형식이 잘못된 것입니다. ELB에서 발생한 502 오류를 해결하려면 다음 단계를 수행합니다.

해결 방법

1.    백엔드 애플리케이션에서 반환한 응답 본문이 HTTP 사양을 준수하는지 확인합니다. RFC 편집기에서 다음 설명서를 참조하세요.
RFC 7230 - HTTP/1.1: 메시지 구문 및 라우팅
RFC 7231 - HTTP/1.1: 의미 체계 및 콘텐츠
RFC 7232 - HTTP/1.1: 조건부 요청
RFC 7233 - HTTP/1.1: 범위 요청
RFC 7234 - HTTP/1.1: 캐싱
RFC 7235 - HTTP/1.1: 인증

2.    응답 헤더의 구문이 올바른지 확인합니다. Content-Type:text와 같이 키와 값을 포함합니다. HTTP 응답 헤더에서 Content-Length 또는 전송 인코딩이 누락되지 않았는지 확인합니다. 웹 서버 HTTP 헤더 필드에 대한 자세한 내용은 HTTP 헤더 필드 목록에서 인터넷 할당 번호 기관 설명서를 참조하세요. 다음과 비슷한 명령을 실행하여 반환된 HTTP 응답을 검사합니다.

curl -vko /dev/null server_instance_IP

3.    ELB 액세스 로그에서 중복된 HTTP 502 오류가 있는지 확인합니다. elb_status_code 및 backend_status_code 모두에서 502 오류는 하나 이상의 웹 서버 인스턴스에 문제가 있음을 나타냅니다. 문제가 발생한 웹 서버 인스턴스를 식별한 후 백엔드 웹 서버 인스턴스의 웹 서버 로그를 확인합니다. 일부 공통 웹 서버 및 운영 체제의 경우 다음 로그 위치를 참조하세요.

Apache 로그

  • CentOS, RHEL, Fedora 및 Amazon Linux의 웹 서버 로그는 /var/log/httpd/ 디렉터리에 있습니다.
  • Debian 및 Ubuntu Linux의 웹 서버 로그는 /var/log/apache2 및 /var/log/lighthttpd/ 디렉터리에 있습니다.

NGINX 로그

  • NGINX 액세스 로그 위치는 nginx.conf 파일(access_log /path/to/access.log)에 정의되어 있음
  • 기본 위치는 /var/log/nginx/access.log임

IIS 로그

Windows IIS 7, IIS 7.5 및 IIS 8.0의 웹 서버 로그는 inetpub\logs\Logfiles 디렉터리에 저장되어 있습니다. Internet Information Server(IIS) 로그에 대한 자세한 내용은 IIS 7.0 이상 버전의 HTTP 상태 코드의 Microsoft 설명서를 참조하세요. 502 오류가 ELB에서 발생했고, 백엔드의 응답이 RFC 규칙을 준수함을 확인한 경우 AWS Support에 문의하세요.