#!/bin/bash
# 응용 예제 ④ — proxy_cache (응답 캐싱)
# X-Cache-Status: MISS → HIT 변화 관찰
set -e

CFG="$(dirname "$0")/configs/05_lab-cache"

# 1) 캐시 디렉토리 준비
sudo mkdir -p /var/cache/nginx
sudo chown www-data:www-data /var/cache/nginx

# 2) 백엔드 :3000 (느린 응답 흉내) 안내
if ! ss -tln | grep -q ":3000 "; then
    echo "⚠️  백엔드 :3000 미실행. setup.sh 의 백엔드 띄우는 단계 먼저 실행."
    exit 1
fi

# 3) 설정 배포 + 기존 site 비활성화
sudo cp "$CFG" /etc/nginx/sites-available/lab-cache
sudo rm -f /etc/nginx/sites-enabled/lab-proxy \
           /etc/nginx/sites-enabled/lab-location \
           /etc/nginx/sites-enabled/lab-upstream \
           /etc/nginx/sites-enabled/lab-tls \
           /etc/nginx/sites-enabled/default
sudo ln -sf /etc/nginx/sites-available/lab-cache \
            /etc/nginx/sites-enabled/lab-cache

# 4) syntax + reload
sudo nginx -t
sudo systemctl reload nginx

# 5) 캐시 MISS → HIT 검증
echo
echo "=== proxy_cache MISS → HIT 검증 ==="
echo "→ 1차 요청 (MISS)"
curl -sI http://localhost/api/users | grep -iE "X-Cache-Status|HTTP/"
echo
echo "→ 2차 요청 (HIT — 5분 캐시)"
curl -sI http://localhost/api/users | grep -iE "X-Cache-Status|HTTP/"
echo
echo "→ 캐시 파일 위치"
sudo find /var/cache/nginx -type f 2>/dev/null | head -3
echo
echo "→ 캐시 무효화 (전체 삭제)"
echo "    sudo rm -rf /var/cache/nginx/*"
