CDN nginx의 Cache 상태
기본적인 cache 상태
이해한 항목들.
- HIT: 서버에 캐시되어 있음.
- MISS: 서버에 캐시가 되어 있지 않음.
- BYPASS: 캐시가 되어있는 여부와 관계 없이, Origin으로 넘김.
- EXPIRED: 내가 가진 캐시가 TTL이 지났고, 원본과 다름. (만료됨.)
- REVALIDATED: 내가 가진 캐시가 TTL이 지났고, 원본과 같음을 확인함. (재 갱신.)
아직 이해하지 못한 항목
- STALE: 내가 가진 캐시가 TTL이 지났음, 하지만 Origin이 응답하지 않아 오래된 캐시로 응답함.
- UPDATING: 내가 가진 캐시가 TTL이 지났음. 최신 데이터로 갱신 중인 상황임.
아직 두 항목에 대해서는 확인을 하지 못했다.
하지만 의미를 해석 시도했을 땐 이렇게 이해했다.
HIT와 MISS
그렇다면, 어디까지 HIT고 MISS 일까?
CDN 입장에서는 Body를 Origin에 요청하지 않으면 HIT라고 볼 수 있다.
즉, TTL이 지났지만, 내가 가진 캐시에서 Etag와 Last-Modified 를 이용해서 아직 신선한 캐시인지 확인하는 과정을 거쳐서
REVALIDATED 됐다면, 그건 HIT라고 볼 수 있다.
내가 사용한 공식은
(Edge 모든 요청 횟수 - Relay의 MISS, EXPIRED, BYPASS 횟수) /
Edge 모든 요청 횟수
이렇게 사용했다.
STALE 된 상태도 실제로는 cache의 값을 client에게 줬기 때문에 HIT로 취급했다.