## 응용 예제 ① — location 매칭 5종 (=, ^~, ~, ~*, prefix)
## 매칭 우선순위: 정확 일치(=) > 우선 접두사(^~) > 정규식(~/~*) > 일반 접두사
server {
    listen 80;
    server_name api.lab.local;

    # 1. 정확 일치 — 헬스체크
    location = /healthz {
        access_log off;
        return 200 "OK\n";
    }

    # 2. 우선 접두사 — 정적 자원 (regex 평가 스킵 → 성능)
    location ^~ /static/ {
        alias /var/www/static/;
        expires 7d;
    }

    # 3. 정규식 (대소문자 무시) — 이미지 캐시
    location ~* \.(jpg|jpeg|png|gif|webp|svg)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
    }

    # 4. 정규식 — API 버전 캡처
    location ~ ^/api/(v\d+)/(.*)$ {
        proxy_pass http://127.0.0.1:3000/$1/$2;
        proxy_set_header X-API-Version $1;
    }

    # 5. 일반 접두사 — 관리자 (가장 긴 prefix 가 이김)
    location /admin/ {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
        proxy_pass http://127.0.0.1:3001/;
    }

    # 6. 기본 catch-all
    location / {
        proxy_pass http://127.0.0.1:3000;
    }
    access_log /var/log/nginx/lab-location.access.log;
}
