응답 캐싱 활성화
캐싱을 사용하려면 proxy_cache_path 최상위 컨텍스트에 지시문을 포함하십시오. 필수 첫 번째 매개변수는 캐시 된 콘텐츠의 로컬 파일 시스템 경로이고 필수 매개변수는 캐시 된 상목에 대한 메타 데이터를 저장하는 사용되는 공유 메모리 영역의 이름과 크기를 정의 합니다.
http {
...
proxy_cache_path /data/nginx/cache keys_zone=one:10m;
}
그런다음 proxy_cache 서버 응답을 캐시 할 컨텍스트에 지시문 keys_zone 을 포함하고 proxy_cache_path 지시문에 대한 매개 변수로 정의 된 영역 이름을 지정합니다.
http {
...
proxy_cache_path /data/nginx/cache keys_zone=one:10m;
server {
proxy_cache mycache;
location / {
proxy_pass http://localhost:8000;
}
}
}
keys_zone 매개 변수로 정의 된 크기는 캐시된 응답 데이터의 총량을 제한하지 않습니다. 캐시 된 응답 자체는 파일 시스템의 특정 파일에 메타 데이터 사본과 함께 저장 됩니다. 캐시 된 응답 데이터의 양을 제한 하려면 지시문에 max_size 매개 변수를 포함 하십시오 proxy_cache_path. (그러나 다음 섹션에 설명 된대로 캐시 된 데이터의 양이 일시적으로 제한을 초과 할 수 있습니다.)
캐싱과 관련된 NGINX 프로세스
캐시관리자는 캐시의 상태를 확인하기 위해 주기적으로 활성화 합니다. 캐시크기가 max_size 매개 변수가 proxy_cache_path 지시문에 설정한 한계를 초과하면 캐시 관리자는 가장 최근에 액세스 한 데이터를 제거합니다. 앞서 언급했듯이 캐시된 데이터의 양은 캐시 관리자 활성화 사이의 시간 동안 일시적으로 제한을 초과 할 수 있습니다.
캐시로더는 바로 NGINX에 시작 후 한번만 실행 됩니다. 이전 캐시된 데이터에 대한 메타 데이터를 공유 메모리 영역으로 로드 합니다. 전체 캐시를 한번에 로드하면 시작 후 처음 몇 분 동안 NGINX성능을 저하시키는데 충분한 리소스가 소비 될 수 있습니다. 이를 방지 하려면 proxy_cache_path 지시문에 다음 매개 변수를 포함하여 캐시의 반복로드를 구성하십시오
- loader_threshold – 반복 기간 (밀리 초) (기본값 200)
- loader_files – 한 번의 반복 동안로드되는 최대 항목 수 (기본적으로 100)
- loader_sleeps – 밀리 초 단위의 반복 간격 (기본값 50)
proxy_cache_path /data/nginx/cache keys_zone=one:10m loader_threshold=300 loader_files=200;
캐시 할 요청 지정
키 계산에 사용되는 요청 특성을 변경하려면 다음 proxy_cache_key 지시문을 포함 하십시오
proxy_cache_key "$host$request_uri$cookie_user";
응답이 캐시되기 전에 동일한 키를 사용하여 요청을 만들어야하는 최소 횟수를 정의하려면 다음 proxy_cache_min_uses지시문을 포함합니다 .
proxy_cache_min_uses 5 ;
GET및 이외의 메서드를 사용하여 요청에 대한 응답을 캐시하려면 지시문 HEAD과 함께 GET및 HEAD매개 변수로 나열합니다 proxy_cache_methods.
proxy_cache_methods GET HEAD POST;
캐싱 제한 또는 비활성화
기본적으로 응담은 캐시에 무기한 남아 있습니다.
캐시가 구성된 최대 크기를 초과 한 경우 마지막으로 요청 된 이후 시간 순서대로 제거 됩니다. 유효한 것으로 간주되는 기간을 캐시 된 응답을 설정 할 수 있습니다.
특정 상태코드가 있는 캐시된 응답이 유효한 것으로 간주되는 기간을 제한 하려면 proxy_chche_valid 지시문을 포함하십시오
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
이 예에서 200또는 302코드 404가 포함 된 응답은 10 분 동안 유효한 것으로 간주되고 코드 가 포함 된 응답 은 1 분 동안 유효합니다. 모든 상태 코드가있는 응답의 유효 시간을 정의하려면 any첫 번째 매개 변수로 지정 하십시오.
proxy_cache_valid any 5m;
캐시에서 콘텐츠 제거
NGINX를 사용하면 캐시에서 오래된 캐시 파일을 제거 할 수 있습니다. 이는 웹 페이지의 이전 버전과 새 버전을 동시에 제공하지 못하도록 오래된 캐시 된 콘텐츠를 제거하는 데 필요합니다. 사용자 지정 HTTP 헤더 또는 HTTP PURGE메서드 가 포함 된 특수 "제거"요청을 수신하면 캐시가 제거됩니다 .
캐시 제거 구성
HTTP PURGE 메서드를 사용하는 요청을 식별하고 일치하는 URL을 삭제하는 구성을 설정하겠습니다.
1. http 블록내에 생성
http {
...
map $request_method $purge_method {
PURGE 1;
default 0;
}
}
2. 캐싱이 구성된 위치 {} 블록에 proxy_cache_purge 지시문을 포함하여 캐시 제거 요청에 대한 조건을 지정합니다. 이 예에서는 이전 단계에서 구성된 $ purge_method입니다.
server {
listen 80;
server_name www.example.com;
location / {
proxy_pass https://localhost:8002;
proxy_cache mycache;
proxy_cache_purge $purge_method;
}
}
PURGE 명령 실행
proxy_cache_purge지침이 구성되어, 당신은 캐시를 제거하는 특별한 캐시 퍼지 요청을 보내야합니다. curl다음 예와 같은 명령을 포함하여 다양한 도구를 사용하여 제거 요청을 실행할 수 있습니다 .
curl -X PURGE -D – "https://www.example.com/*"
HTTP/1.1 204 No Content
Server: nginx/1.15.0
Date: Sat, 19 May 2018 16:33:04 GMT
Connection: keep-alive
'서버인프라 > 엔진엑스' 카테고리의 다른 글
[GeoIP 모듈] Nginx Geo IP 모듈 설치 (2) | 2022.11.17 |
---|---|
사설 ssl인증서 적용 (0) | 2022.10.17 |
[ 제4강 TCP&UDP부하 분산 ] NGINX 로드 벨런서 (0) | 2021.01.22 |
[ 제3강 서버 가중치 ] NGINX 로드 벨런서 (0) | 2021.01.20 |
[ 제2강 균형조정 ] NGINX 로드 벨런서 (0) | 2021.01.20 |
댓글