DEV WIKI
인프라 · 문제 해결 가이드

웹서버 로그에 프록시 또는 업스트림 오류가 보여요

프록시 또는 업스트림 요청에서 502·504·522가 발생하거나 TLS 포트에 평문 HTTP 요청을 보냈다는 응답이 표시될 때 연결 실패, 시간 초과와 요청 스킴 불일치를 구분합니다.

빠른 답변

프록시 또는 업스트림 오류에서는 응답 코드와 원문, 요청 URL의 스킴·포트, TLS가 끝나는 구간을 함께 확인합니다. 502·504·522는 연결과 응답 상태를 확인하고, This combination of host and port requires TLS가 표시되면 TLS 포트에 평문 HTTP 요청을 보낸 구간을 찾아 HTTPS로 맞춥니다.

적용 범위
이 가이드의 시작 증상과 각 분기 조건이 일치하는 경우
출처 확인일
2026-09-02
최종 검토
2026-09-02
수정일
2026-09-02
대상
사이트 운영자, 쇼핑몰 운영자, 웹 에이전시, 프리랜서
오류·수정 제보 (새 창에서 열림)

이 가이드가 맞는 경우

  • 애플리케이션 오류 메시지
  • 사이트 접속 불가
  • SSL 핸드셰이크 실패

상황별 다음 단계

호스팅사·개발자에게 전달할 내용

변경 전 기록

  • 문제가 발생한 URL, 화면 또는 로그의 원문, 최초 발생 시각을 전달합니다.
  • 클라이언트와 프록시 upstream에 설정한 요청 스킴·호스트·포트, TLS가 끝나는 구간을 전달합니다.
  • 비밀번호, 인증 토큰, 세션 쿠키, 결제 정보, 개인정보는 전달하지 않습니다.
  • 최근 배포, 설정, 도메인, 플러그인 또는 인프라 변경이 있었다면 시각과 변경 범위를 함께 전달합니다.

알아둘 점

프록시나 업스트림 요청에서 오류가 발생하면 응답 코드만 보고 서버 중단으로 판단하지 않습니다. 응답 본문과 요청 URL의 스킴·포트, TLS가 끝나는 구간을 함께 기록한 뒤 연결 실패, 응답 시간 초과와 HTTP/HTTPS 불일치를 구분합니다.

적용되는 시작 상황

다음 관찰값을 확인합니다.

  • Bad Request: This combination of host and port requires TLS
  • HTTP 502: Bad gateway
  • HTTP 504: Gateway timeout
  • Error 522: connection timed out

먼저 기록할 것

  1. 문제가 발생한 URL 또는 기능과 최초 발생 시각을 기록합니다.
  2. 화면, 브라우저 개발자 도구, 서버 로그, 관리자 도구 중 실제로 확인한 위치를 기록합니다.
  3. 오류 문구 또는 상태 코드를 원문 그대로 기록합니다.
  4. 클라이언트 요청 URL과 프록시 upstream의 스킴·호스트·포트를 기록합니다.
  5. 브라우저, CDN, 로드 밸런서, 웹서버 중 TLS가 끝나는 구간을 확인합니다.
  6. 최근 배포·설정·도메인·프록시 변경이 있었다면 변경 시각과 범위를 기록합니다.

상황별 다음 단계

관찰값우선 확인할 사실다음 문서
Bad Request: This combination of host and port requires TLSTLS가 설정된 Tomcat 또는 Elasticsearch 포트에 http:// 요청을 보냈는지 확인합니다.Bad Request: This combination of host and port requires TLS
HTTP 502: Bad gateway프록시가 업스트림에서 유효한 응답을 받았는지 확인합니다.HTTP 502: Bad gateway
HTTP 504: Gateway timeout프록시가 제한 시간 안에 업스트림 응답을 받았는지 확인합니다.HTTP 504: Gateway timeout
Error 522: connection timed outCloudflare와 원본 서버 사이의 연결·응답 시간 초과를 확인합니다.Error 522: connection timed out

HTTP와 HTTPS 포트가 맞지 않는지 확인합니다

오류 원문에 This combination of host and port requires TLS가 있으면 연결 시간 초과보다 요청 스킴을 먼저 확인합니다. 예를 들어 TLS가 설정된 8443 포트를 http://로 요청하면 서버가 평문 요청을 거부할 수 있습니다. 포트 번호만으로 프로토콜을 추정하지 말고 현재 서버 설정과 실제 요청 URL을 비교합니다.

확인할 요청: https://backend.example.com:8443/잘못된 요청: http://backend.example.com:8443/

프록시에서 TLS를 끝낸 뒤 원본에는 HTTP로 전달하는 구성도 있고, 원본까지 HTTPS로 전달하는 구성도 있습니다. 브라우저 주소만 바꾸지 말고 프록시 upstream 설정과 원본의 수신 방식을 같은 구간끼리 비교합니다. X-Forwarded-Proto 헤더만 바꿔도 실제 평문 연결이 TLS로 바뀌지는 않습니다.

Spring Boot 내장 Tomcat이면 server.portserver.ssl.*, Elasticsearch이면 http.portxpack.security.http.ssl.enabled를 확인합니다. HTTPS로 전환한 뒤 인증서 신뢰 오류가 발생하면 검증을 끄지 말고 서버 인증서를 서명한 CA를 클라이언트가 신뢰하도록 설정합니다.

수정 후 재확인합니다

  1. 변경 전 요청 스킴·호스트·포트와 오류 원문을 기록합니다.
  2. 클라이언트에서 프록시, 프록시에서 원본으로 이어지는 각 요청 구간을 확인합니다.
  3. 한 구간만 수정하고 같은 요청을 다시 실행합니다.
  4. 오류가 사라졌거나 다음 정상 인증 단계로 바뀌었는지 확인합니다.
  5. 프록시와 원본 로그에서 같은 오류 원문이 다시 발생하지 않는지 확인합니다.

curl -k, verify_certs: false, NODE_TLS_REJECT_UNAUTHORIZED=0으로 인증서 검증을 끈 결과는 완료로 판단하지 않습니다. 위 조건과 일치하지 않으면 원문을 보존하고 담당자에게 전달합니다. 비밀번호·토큰·세션 쿠키·결제 정보·개인정보는 전달하지 않습니다.

참고 자료

TLSClientHelloExtractor.java (새 창에서 열림)

Apache Tomcat · 공식 자료 · 확인 범위: Tomcat은 TLS가 필요한 연결에 TLS 없이 접속한 클라이언트에 This combination of host and port requires TLS 문구를 포함한 HTTP 400 응답을 만듭니다. · 확인일: 2026-09-02

Embedded Web Servers (새 창에서 열림)

Spring · 공식 자료 · 확인 범위: Spring Boot 내장 웹 서버는 server.ssl 속성으로 HTTPS 연결을 구성합니다., HTTP와 HTTPS를 함께 제공하려면 별도 커넥터를 구성해야 합니다. · 확인일: 2026-09-02

Diagnose password setup connection failures (새 창에서 열림)

Elastic · 공식 자료 · 확인 범위: Elasticsearch HTTP 인터페이스가 TLS를 요구할 때 HTTPS URL과 CA 인증서 신뢰를 함께 확인합니다. · 확인일: 2026-09-02

Troubleshoot your Application Load Balancers - Elastic Load Balancing (새 창에서 열림)

AWS · 공식 자료 · 확인 범위: AWS Application Load Balancer는 대상에 연결하려 할 때 TCP RST를 받으면 HTTP 502 Bad gateway를 반환할 수 있다고 설명합니다. · 확인일: 2026-07-27

502 Bad Gateway - HTTP | MDN (새 창에서 열림)

MDN Web Docs (Mozilla) · 공식 자료 · 확인 범위: HTTP 502는 게이트웨이 또는 프록시 역할의 서버가 업스트림 서버에서 유효하지 않은 응답을 받았음을 나타냅니다. · 확인일: 2026-07-27

Error 502 or 504 · Cloudflare Support docs (새 창에서 열림)

Cloudflare · 공식 자료 · 확인 범위: 원본 웹 서버가 표준 HTTP 502 응답을 반환하면 Cloudflare는 Cloudflare 브랜딩이 있는 HTTP 502 오류를 반환합니다., Cloudflare에서 발생한 502 오류는 Cloudflare 브랜딩이 없는 빈 페이지로 나타날 수 있습니다. · 확인일: 2026-07-27

504 Gateway Timeout - HTTP | MDN (새 창에서 열림)

MDN Web Docs (Mozilla) · 공식 자료 · 확인 범위: HTTP 504는 게이트웨이 또는 프록시 역할의 서버가 업스트림 서버에서 정해진 시간 안에 응답을 받지 못했음을 나타냅니다. · 확인일: 2026-07-27

Error 522 · Cloudflare Support docs (새 창에서 열림)

Cloudflare · 공식 자료 · 확인 범위: definition, common-causes, resolution · 확인일: 2026-07-21