[Nginx - 경우에 따라 inactive time을 바꾸기]
2011. 03. 24. 임광일
* proxy_cache_path는 http Context에서만 수정 가능함
* set $abc 1m 와 같은 변서 세팅은 http Context에서 사용 안됨
* 또한 inactive option은 변수 처리 안됨
ex) /cache levels=2:2:2 keys_zone=DELL:10m inactive=$abc max_size=1g; <= 에러
* proxy_cache_valid는 inactive option에 적용 순위 밀림
실제 의미 없어 보임
* 그 외 여러가지 if문이나 변수 처리로 해보려했으나 모두 안됨
* proxy_cache_path는 PATH가 UNIQUE 해야함
그렇지 않으면 후순위로 정의한 경우에는 DEFAULT 값이 먹음
ex) proxy_cache_path /cache levels=2:2:2 keys_zone=DELL1:10m inactive=1m max_size=1g;
proxy_cache_path /cache levels=2:2:2 keys_zone=DELL2:10m inactive=2m max_size=1g;
와 같이 적용 했을 경우 DELL1 사용에서는 inactive=1m 가 적용 되었는데
DELL2 사용에서는 inactive=10m 이 적용 됨
* 그런데 캐싱 데이터는 공유 해야 하기 때문에 ln -s /cache1 /cache2 와 같은 형태로 링크 시켜서 사용
* keys_zone이 달라도 proxy_cache_key 값이 같으면 키 값은 동일
* location에 따라 다른 keys_zone을 사용하는 방식을 이용해서 inactive time 다르게 처리
ex) location /1/ { proxy_cache DELL1; }
location /2/ { proxy_cache DELL2; }
* DELL1은 inactive=1m 이고
DELL2는 inactive=2m 일때
DELL1 서치후 DELL2 서치하면 , 파일은 기존 파일로 유지, inactive time 도 1m에서 1m 으로 유지
DELL2 서치후 DELL1 서치하면 , 파일은 신규 파일로 변경, inactive time 도 2m에서 1m 으로 변경
* 위와 같은 결과로 "HOT ISSUE 검색어 처리" 같은 경우는 cron으로 5m 마다 특정 keys_zone을 만들어서
캐시를 생성하면 짧은 inactive time 우선 처리 하기 때문에 이상 없음