[실습] 04. NGINX 캐시 입문
2026. 1. 4. 20:37

04. NGINX 캐시 입문

nginx diagram
구성도

핵심 정리

1) 캐시는 ‘성능 향상’보다 ‘부하 안정화’가 핵심인 경우가 많습니다

  • 캐시 HIT가 늘어나면 백엔드 트래픽이 줄어들고, 장애 시에도 ‘버티는 시간’이 길어질 수 있습니다.
  • 반대로, 정책 없이 캐시를 켜면 로그인/개인화 화면이 잘못 캐시되어 큰 사고가 날 수 있습니다.

2) 가장 중요한 키워드 3가지

  • proxy_cache_path: 캐시 저장소(디스크), keys_zone 메모리 영역, 만료/용량 정책
  • proxy_cache_key: 어떤 값을 키로 삼아 캐시를 구분할지
  • Vary / Cookie: 사용자별로 다른 응답이 섞이지 않도록 분리 기준을 설계
proxy_cache_path /var/cache/nginx levels=1:2
  keys_zone=mycache:10m
  max_size=1g
  inactive=60m
  use_temp_path=off;

server {
  location / {
    proxy_cache mycache;
    proxy_cache_valid 200 10m;

    proxy_pass http://backend;
  }
}

3) Django/개인화 서비스에서 특히 중요한 설정

# (예시) 개인화 응답을 캐시하지 않도록 조건을 둡니다.
# 실제 서비스에선 쿠키/헤더/경로를 기준으로 더 정교하게 설계하세요.

set $bypass_cache 0;
if ($http_cookie ~* "sessionid") { set $bypass_cache 1; }

proxy_cache_bypass $bypass_cache;
proxy_no_cache     $bypass_cache;

참고 링크