클라이언트 응답

HTTP 응답코드

원본에 콘텐츠가 있는데 404 Not Found 발생합니다.

Hint

캐싱시점에는 404 였을 것입니다. 캐싱콘텐츠 무효화 API 하시면 정상화될 것입니다.

accessControl 을 설정하지 않았다면 M2가 임의대로 404 로 응답할 수 없습니다. 다음 시나리오로 동작했을 가능성이 큽니다.

  1. 클라이언트 요청 발생

  2. M2가 원본서버에서 404 캐싱

  3. 원본서버에 콘텐츠 정상 업로드

  4. 클라이언트 404 응답 (= HIT!)

origin.log 를 통해 증명이 가능합니다.

원본에 콘텐츠가 있는데 500 Internal Error 가 발생합니다.

Hint

원본서버가 배제되었을 확률이 높습니다.

일시적인 네트워크 또는 원본서버의 장애라면 관리자는 문제없는 상황만 보게될 수 있습니다. 다음 방법을 통해 점검하시기 바랍니다.

AWS 환경인데 왜 502 Bad Gateway 응답이 발생합니다.

Hint

M2의 클라이언트 세션 유지시간이 ALB와 같거나 작다면 502 Bad Gateway 가 발생할 수 있습니다.

  • ALB가 클라이언트 요청을 M2로 보냄

  • 이 순간 M2가 세션 유지시간 만료로 연결 종료

  • ALB는 정상적으로 보낸 요청에 대해 서버(M2)가 연결을 종료하였으므로 502 Bad Gateway 로 응답

네트워크 상에서 M2 앞, 뒤에 존재하는 구성요소의 세션 유지시간을 반드시 확인하십시오. 기본원칙은 뒤로 갈수록 세션 유지시간이 길어야 합니다. 그래야 클라이언트에서 세션 재사용이 용이합니다. AWS 환경이라면 보통 아래와 같은 구성이 됩니다.

Client ----> ALB ----> M2/EC2 ----> EC2/S3

이와 같은 구조에서 M2의 Idle 세션 유지 시간은 ALB 보다 길고 EC2/S3 보다 작아야 합니다. 따라서 아래와 같이 1초라도 뒤로 갈수록 값이 커져야 합니다.

Client ----> ALB ----> M2/EC2 ----> EC2/S3
        60s       62s         180s

HTTP 요청에 대해 M2에서 응답 코드를 내려주지 않습니다.

Hint

클라이언트 요청 헤더 크기가 8Kbytes 이상 인지 확인 해주세요

  • M2 요청 헤더 기본 버퍼는 8Kbytes 입니다.

  • http recvBufferSize 설정 가능 합니다.

  • 원본 -> M2 응답 헤더 기본 버퍼는 64Kbytes 입니다.

M2 프로토콜별 기본 버퍼는?

  • M2 http2 비활성화시 https 요청에 대한 M2 기본 버퍼는 32Kbytes 입니다.

  • M2 http2 활성화시 https/http2 요청에 대한 M2 기본 버퍼는 8Kbytes 입니다.

  • http2 기본 요청/응답 헤더 개수 변경 가능 합니다.