DEV WIKI
인프라 · 오류·증상

HTTP 502 - Bad Gateway

IIS Application Request Routing(ARR)이 프록시로서 업스트림 서버 요청을 완료하거나 클라이언트에 응답을 반환하지 못할 때 표시될 수 있는 HTTP 502 오류입니다.

빠른 답변

우선 확인할 원인
IIS ARR에서 "HTTP 502 - Bad Gateway"가 표시되고 IIS 로그의 sc-status가 502, sc-substatus가 3, sc-win32-status가 12002이면 ERROR_WINHTTP_TIMEOUT과 같은 시간 초과 오류를 확인할 수 있습니다.
먼저 확인할 항목
ARR 컨트롤러 IIS 로그에서 `sc-status=502`, `sc-substatus=3`, `sc-win32-status=12002`인지 확인합니다.
적용 범위
현재 증상과 본문에 적은 관찰 조건이 함께 확인된 경우
출처 확인일
2026-07-29
최종 검토
2026-07-24
수정일
2026-07-27
관련 기술
오류·수정 제보 (새 창에서 열림)

현재 증상

  • 애플리케이션 오류 메시지
  • 서버 5xx 응답

먼저 확인할 항목

ARR 컨트롤러 IIS 로그에서 `sc-status=502`, `sc-substatus=3`, `sc-win32-status=12002`인지 확인합니다.

Failed Request Tracing 로그가 이미 있으면 ARR 서버와 대상 서버의 `X-ARR-LOG-ID` 값을 비교합니다.

환경별 원인과 조치

확인

ARR 컨트롤러의 해당 웹 사이트 IIS 로그에서 다음 값을 확인합니다.

  • sc-status502인지 확인합니다.
  • sc-substatus3인지 확인합니다.
  • sc-win32-status12002인지 확인합니다.

세 값이 각각 502, 3, 12002이면 원문 예시의 ERROR_WINHTTP_TIMEOUT과 같은 시간 초과 오류입니다.

이미 ARR 서버와 대상 서버의 Failed Request Tracing 로그가 수집되어 있다면, 두 로그의 X-ARR-LOG-ID 값이 같은지 비교하여 같은 요청인지 확인합니다.

범위

원문은 서버 연결 실패, 서버 무응답 또는 응답 시간 초과를 502.3의 가능한 상황으로 설명합니다. 이 문서는 로그 값 대조와 요청 추적 범위 확인만 다룹니다.

진단 기록

먼저 문제가 발생한 URL 또는 화면, 표시 시각, 사용한 플랫폼과 배포 버전을 기록합니다. 화면과 로그에서 오류 문자열이 일부만 보이면 앞뒤 문장을 포함해 원문을 보존하고, 민감한 값은 가립니다.

다음 순서로 관찰값을 대조합니다.

  1. ARR 컨트롤러 IIS 로그에서 sc-status=502, sc-substatus=3, sc-win32-status=12002인지 확인합니다.
  2. Failed Request Tracing 로그가 이미 있으면 ARR 서버와 대상 서버의 X-ARR-LOG-ID 값을 비교합니다.

각 항목은 확인한 값과 확인하지 못한 이유를 함께 기록해야 합니다. 이 문서의 조건과 실제 관찰값이 다르면 원인을 단정하지 말고, 문제 해결 시작 가이드에서 더 넓은 분기를 선택하십시오.

판정 기준

오류 문자열이 일치한다는 사실만으로 원인이 확정되지는 않습니다. 같은 문구가 여러 환경에서 나타날 수 있으므로 웹서버·런타임·운영체제·최근 변경 사항을 함께 비교합니다. 한 단계에서 기대한 값이 나오지 않으면 다음 단계로 넘어가지 말고 해당 환경의 공식 문서를 우선 확인합니다.

안전한 다음 단계

검사 전에 백업과 변경 이력을 확인하고, 비밀번호·세션 쿠키·인증 토큰·개인정보를 공개 로그나 문의 내용에 넣지 않습니다. 설정·권한·데이터를 변경해야 한다면 영향 범위와 되돌리는 방법을 먼저 기록한 뒤 운영 시간과 승인 절차에 맞춰 진행합니다.

원인 분포

[Observation] 수집된 3건에서는 서로 다른 원인이 각각 1건씩 관측되었습니다.

원인 유형관측 사례 수
ARR 외부 프록시 미설정으로 인한 외부 연결 시간 초과1
백엔드 응답 헤더 이름의 공백1
worker node의 만료된 TLS 인증서1

[Observation] 위 분포는 관측된 사례 기준이며 실제 발생 빈도를 의미하지 않습니다.

오진 함정

[Observation] 502.3은 외부 대상 연결 시간 초과, 백엔드 응답 형식 오류, TLS 인증서 만료 사례에서 모두 나타났습니다.

[Hypothesis] 따라서 상태 코드만으로 네트워크 연결 문제로 단정하면 응답 헤더와 인증서 검증 문제를 놓칠 수 있습니다.

환경 매트릭스

환경 조건증상확인된 수정
Windows Server·IIS ARR, 외부 사이트 프록시 경유502.3 시간 초과ARR reverse proxy에 외부 접속용 프록지 지정
IIS ARR, 같은 서버의 포트 81 사이트502.3 및 인식할 수 없는 응답백엔드 응답 헤더 이름의 공백을 하이픈으로 변경
Windows Server 2022·IIS 10·ARR 3.0, worker node TLS 연결502.3만료되지 않은 인증서로 교체

진단 순서

  1. [Observation] 요청 대상이 외부 사이트인지 확인하고, 외부 접속용 프록시가 ARR reverse proxy에 지정되어 있는지 확인합니다.
  2. [Observation] 백엔드 응답을 직접 확인하여 응답 헤더 이름에 공백이 포함되어 있는지 확인합니다.
  3. [Observation] TLS를 사용하는 worker node의 인증서 만료 여부를 확인합니다.
  4. [Observation] 확인된 원인에 따라 프록시 설정, 응답 헤더 이름, 인증서를 수정한 뒤 트래픽 정상 여부를 확인합니다.

참고 자료

Troubleshooting 502 errors in ARR - Internet Information Services | Microsoft Learn (새 창에서 열림)

Microsoft · 공식 자료 · 확인 범위: IIS ARR 배포에서 "HTTP 502 - Bad Gateway" 오류가 표시될 수 있습니다., 502.3은 ARR이 프록시로서 업스트림 서버 요청을 완료하고 클라이언트에 응답을 반환하지 못했음을 의미합니다., IIS 로그의 sc-status 502, sc-substatus 3, sc-win32-status 12002는 ERROR_WINHTTP_TIMEOUT에 대응합니다. · 확인일: 2026-07-24

Stack Overflow · 운영 사례 (새 창에서 열림)

확인 범위: Windows Server와 IIS ARR에서 외부 사이트로 URL Rewrite를 수행할 때 502.3 시간 초과가 발생했습니다., ARR에 조직의 외부 접속용 프록시를 지정한 뒤 오류가 해결되었습니다. · 확인일: 2026-07-29

Stack Overflow · 운영 사례 (새 창에서 열림)

확인 범위: 같은 서버의 IIS 사이트를 포트 81로 역방향 프록시할 때 502.3과 인식할 수 없는 응답 오류가 발생했습니다., 백엔드 응답 헤더 이름의 공백을 하이픈으로 변경한 뒤 요청이 정상 처리되었습니다. · 확인일: 2026-07-29

Microsoft Q&A · 운영 사례 (새 창에서 열림)

확인 범위: Windows Server 2022, IIS 10, ARR 3.0 환경에서 SecureConnectionIgnoreFlags 설정 후에도 502.3이 발생했습니다., worker node의 만료된 인증서를 갱신한 뒤 트래픽이 다시 동작했습니다. · 확인일: 2026-07-29