Enterprise Infrastructure Intelligence ● Certified engineers online · Fast response guaranteed
웹서버/DB

HTTP 요청 타임아웃 처리: 웹서버 및 역프록시에서의 구현

HTTP 요청 타임아웃은 서버가 클라이언트로부터 요청을 완전히 수신하기 위해 대기할 시간을 설정하는 메커니즘입니다. 클라이언트-서버, 프록시-업스트림 간 타임아웃 관리는 리소스 고갈 방지와 안정적인 서비스 제공의 핵심 요소입니다.

2026.09.30  ·  16회  · 

요청 타임아웃의 정의 및 구조

요청 타임아웃(Request Timeout)은 서버가 클라이언트로부터 완전한 HTTP 요청 메시지를 수신하기 위해 대기하는 최대 시간입니다. RFC 7231 표준에 따르면, 이 시간 내에 완전한 요청을 받지 못할 경우 서버는 408 Request Timeout 상태 코드를 반환하고 연결을 종료합니다.

웹서버 레벨 타임아웃 처리: Apache HTTP Server

Apache는 mod_reqtimeout 모듈을 통해 세 가지 단계별 타임아웃을 제공합니다. TLS 핸드셰이크(handshake), 요청 헤더 수신(header), 요청 본문 수신(body) 각 단계에 독립적인 타임아웃을 설정할 수 있습니다. 기본값은 헤더 20~40초, 본문 20초이며, 데이터 수신률에 따라 타임아웃을 동적으로 증가시키는 MinRate 옵션(예: 500바이트 당 1초 증가)도 지원합니다.

역프록시 레벨 타임아웃 처리: Nginx

Nginx의 업스트림 모듈은 proxy_connect_timeout(연결 수립, 기본 60초), proxy_send_timeout(업스트림으로의 전송, 기본 60초), proxy_read_timeout(업스트림으로부터의 응답 읽기, 기본 60초)을 제공합니다. keepalive_timeout은 유휴 연결의 지속 시간(기본 60초)을 제어하며, proxy_next_upstream_timeout으로 재시도 전체 타임아웃을 제한할 수 있습니다.

실무 아키텍처와 주의점

클라이언트→프록시→서버 구조에서 클라이언트 타임아웃이 프록시 타임아웃보다 짧으면 불필요한 408 응답이 증가하고, 백엔드 처리 시간이 길어질 경우 프록시 타임아웃을 충분히 설정해야 합니다. 특히 느린 업로드나 장시간 처리 작업의 경우 단계별 타임아웃이 아니라 총 처리 시간(timeout-maxtimeout)으로 관리하는 것이 중요합니다.

WIKIDATA WORKSTATION
AI·렌더링에 최적화된
전문가용 워크스테이션
NVIDIA RTX GPU · 최대 192GB 메모리 · ECC 지원