Nginx를 Reverse Proxy 웹서버로 사용할때의 캐시 사용방법
http { include mime.types; default_type application/octet-stream; proxy_cache_path /nginx/nginx-1.6/cache levels=1:2 key_zone=my-cache:8m max_size=1000m inactive=600m; proxy_temp_path /nginx/nginx-1.6/tmp; ... 중략 server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } location ~ \.jsp$ { include proxy.conf; proxy_pass http://127.0.0.1:8080; proxy_cache my-cache; proxy_cache_valid 200 302 60m; proxy_cache_valid 404 1m; } } } |
최대 1,000MB의 캐시를 만들어 HTTP 응답코드가 200 또는 302일 경우 60분동안 캐시에 저장을 하고 응답코드가 404인 경우에는 1분동안 캐시에 저장하는 설정입니다.
자주쓰는 캐시설정 지시어
: proxy_cache 지시어
설명 : 캐시 존을 정의합니다. 캐시존에 부여된 식별자를 이용해 다른지시어에서 사용을 한다.
syntax : proxy_cache zonename | off;
default : proxy_cache off;
사용 예) proxy_cache cache1; // cache1 이라는 캐시존을 정의
context : http, server, location
: proxy_cache_path 지시어
설명 : 캐시파과 매개변수를 저장하기 위한 디렉토리를 지정한다.
syntax : proxy_cache_path path [levels=levels] keys_zone=name:size [inactive=time]
[maxsize=size] [loader_files=number] [loader_sleep=time] [loader_threshold=time]
- level : 하위 디렉토리의 깊이를 나타낸다( 보통 1:2 정도면 충분함 )
- key_zone : proxy_cache 지시어로 정의한 캐시 존을 이용할 수 있게 하며, size는 해당 캐시존의 크기이다.
- inactive : 캐시된 응답이 지정한 시간만큼 사용되지 않으면 캐시로부터 제거된다.
- max_size : 전체 캐시의 최대 크기를 정의한다.
사용 예) proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=cache1:10m max_size=300M;
default : 없음
context : http
: proxy_cache_key 지시어
설명 : 캐시 항목들을 서로 구분하는 캐시 키(cache key)를 정의한다.
캐시 키가 $request_uri로 설정되어있으면, request_uri이 같은 모든 요청은 같은 캐시 항목에 대응된다.
syntax : proxy_cache_key string;
사용 예) proxy_cache_key "$schema$host$request_uri $cookie_user";
default : proxy_cache_key $schema$proxy_home$request_uri;
context : http, server, location
: proxy_cache_bypass 지시어
설명 : 응답에 캐시를 적용하지 않을 조건을 지정한다.
문자열 변수가 비어 있지 않거나 "0"이 아니면, 캐시로부터 응답을 가져오지 않는다.
동일한 지시어로 proxy_no_cache 지시어가 있다.(syntax 동일함)
syntax : proxy_cache_bypass string ... ;
default : 없음.
context : http, server, location
: proxy_cache_method 지시어
설명 : 캐시가 적용되는 HTTP 메소드를 정의한다.
syntax : proxy_cache_method GET | HEAD | POST;
default : proxy_cache_method GET HEAD; // 기본적으로 GET, HEAD는 포함되며, 해제할 수 없다.
context : http, server, location
: proxy_cache_min_uses 지시어
설명 : 요청이 캐시되는 데 필요한 최소 요청 횟수를 정의한다.
syntax : proxy_cache_min_uses number;
default : proxy_cache_min_uses 1; // 기본적으로 한번의 요청만으로도 캐시된다.
같은 캐시키를 갖는 이후의 요청은 캐시된 응답을 수신하게 된다.
context : http, server, location
: proxy_cache_valid 지시어
설명 : 프록시되는 서버(backend)로부터의 응답에 따른 캐시의 유효시간 설정
syntax : proxy_cache_valid code1 [code2 ...] time;
사용 예) proxy_cache_valid 404 1m; // 응답코드 404는 1분 동안 캐시
proxy_cache_valid 500 502 504 5m; // 응답코드 500, 502, 504는 5분동안 캐시
proxy_cache_valid 200 10; // 응답코드 200은 10분이상 캐시
default : 없음
context : http, server, location
by 김현수
'1. 미들웨어이야기 > 04. Nginx' 카테고리의 다른 글
Nginx 백엔드 서버 부하분산 설정 (0) | 2014.07.28 |
---|---|
Nginx 다중 백엔드 설정 (0) | 2014.07.28 |
Nginx JBoss 연동(Reverse Proxy 사용) (0) | 2014.05.07 |
Nginx 설치 / -configure 옵션 (0) | 2014.05.07 |
Nginx 설치 (0) | 2014.04.23 |