웹 캐시 서버 nuster 입문-2(Purge)

웹 캐시 서버 nuster 입문-2(Purge)

2022-10-05 last update

7 minutes reading 우분투 CentOS 리눅스 도커 infrastructure
지난번은 웹 캐시 서버 nuster 입문 -1 (기본) 에서 nuster를 간단하게 소개했습니다. 그 후 여러가지 Purge 기능을 추가했으므로 이번에는 Purge에 대해 소개하고 싶습니다.

사양은 변경될지도 모르므로, 최신의 것은 htps : // 기주 b. 코 m/지안구에니앙/누s테 r/bぉb/마s테 r/레아 D메. md 를 참조해 주세요.

Purge Cache



여러 가지 방법으로 Purge 수 있습니다. Purge 기능은 기본적으로 Off이므로 On이어야 합니다.

Purge 사용


global 섹션에서 nuster cache on uri /nuster/cache와 같이 Purge에 대한 uri를 설정하여 Purge를 활성화합니다. uri는 뭐든지 좋다.

그리고 디폴트의 Purge 메소드는 PURGE 입니다만, purge-method MYPURGE 그리고 다른 메소드도 설정할 수 있습니다.

기본 사용법


curl -X PURGE http://127.0.0.1/URI
URI는 기본처 설정했다 /nuster/cache 로, 유일한 예외는 1개 URL을 Purge 할 때, 그 URL을 사용합니다.

하나의 URL을 Purge


curl -XPURGE https://127.0.0.1/imgs/test.jpgGET /imgs/test.jpg 로 생성한 캐시를 Purge 하는, HEADER 등은 묻지 않습니다.

이름으로 Purge



nuster-rule의 name, proxy의 name, 혹은 * 로 Purge 할 수 있습니다.

headers


header
value
description


이름
nuster-rule NAME
nuster-rule ${NAME}에서 생성한 캐시를 Purge

프록시 NAME
proxy ${NAME}의 캐시를 Purge

*
모든 캐시를 Purge


Examples
# すべてのキャッシュをPurge
curl -X PURGE -H "name: *" http://127.0.0.1/nuster/cache

# proxy app1bのすべてのキャッシュをPurge
curl -X PURGE -H "name: app1b" http://127.0.0.1/nuster/cache

# nuster-rule r1が生成したキャッシュをすべてPurgeする
# つまり /imgs/* のキャッシュをすべてPurgeする
# nuster-rule r1 imgs if { path_beg /imgs/ }
curl -X PURGE -H "name: r1" http://127.0.0.1/nuster/cache

Host의 Purge



해당 Host의 모든 캐시를 Purge 할 수 있습니다.

headers


header
value
description


x-host
HOST
the ${HOST}


Examples
# 127.0.0.1:8080のすべてのキャッシュをPurge
curl -X PURGE -H "x-host: 127.0.0.1:8080" http://127.0.0.1/nuster/cache

path에서 Purge



기본적으로 동일한 path에서도 query가 다르면 생성한 캐시도 다릅니다.

예를 들면 nuster-rule imgs if { path_beg /imgs/ } , 그리고
curl https://127.0.0.1/imgs/test.jpg?w=120&h=120
curl https://127.0.0.1/imgs/test.jpg?w=180&h=180

그러면 두 개의 캐시가 생성됩니다.

path에서 purge를 제외하고는 여러 가지 방법으로 Purge 할 수 있습니다.

하나씩
curl -XPURGE https://127.0.0.1/imgs/test.jpg?w=120&h=120
curl -XPURGE https://127.0.0.1/imgs/test.jpg?w=180&h=180

하지만 query를 모르는 경우는 할 수 없습니다.

쿼리가 중요하지 않다면 사용자 정의 키를 사용하십시오.
nuster-rule imgs key method.scheme.host.path if { path_beg /imgs } , 하면 하나의 캐시 만 생성됩니다. 그리고 query없이 purge 수 있습니다.
curl -XPURGE https://127.0.0.1/imgs/test.jpg
하지만 query가 중요한 경우에는 할 수 없습니다.

cache-rule에서 purge
curl -X PURGE -H "name: imgs" http://127.0.0.1/nuster/cache
그러면 /imgs/test.jpg 뿐만 아니라 다른 /imgs/* 도 Purge 됩니다.

그래서 path에서 Purge

headers


header
value
description


path
PATH
path가 ${PATH}인 캐시를 purge

x-host
HOST
그리고 host 는 ${HOST}


Examples
# pathが/imgs/test.jpg のキャッシュをPurge
curl -X PURGE -H "path: /imgs/test.jpg" http://127.0.0.1/nuster/cache

# pathが/imgs/test.jpgで hostが127.0.0.1:8080のキャッシュをPurge
curl -X PURGE -H "path: /imgs/test.jpg" -H "x-host: 127.0.0.1:8080" http://127.0.0.1/nuster/cache

regex에서 Purge



headers


header
value
description


regex
REGEX
path가 ${REGEX} match이면 Purge

x-host
HOST
그리고 host 는 ${HOST}


Examples
# /img下の.jpgファイルのキャッシュをPurge
curl -X PURGE -H "regex: ^/imgs/.*\.jpg$" http://127.0.0.1/nuster/cache

#/img下の.jpgファイルかつHostが 127.0.0.1:8080のキャッシュをPurge 
curl -X PURGE -H "regex: ^/imgs/.*\.jpg$" -H "127.0.0.1:8080" http://127.0.0.1/nuster/cache