LoginSignup
0
1

More than 5 years have passed since last update.

ウェブキャッシュサーバnuster入門-2(Purge)

Last updated at Posted at 2018-03-22

前回は ウェブキャッシュサーバnuster入門-1(基本) でnusterを簡単に紹介しました。その後いろいろなPurge機能を追加したので、今回はPurgeについて紹介したいと思います。

仕様は変更されるかもしれないので、最新のものはhttps://github.com/jiangwenyuan/nuster/blob/master/README.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を使います。

1つURLをPurge

curl -XPURGE https://127.0.0.1/imgs/test.jpg

GET /imgs/test.jpgで生成したキャッシュをPurgeする、HEADERなどは問いません。

nameでPurge

nuster-ruleのname、proxyのname、もしくは*でPurgeできます。

headers

header value description
name nuster-rule NAME nuster-rule ${NAME} で生成したキャッシュをPurge
proxy 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

すると、2つのキャッシュが生成されます。

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がわからない場合はできません。

もしqueryが重要ではないなら、カスタマイズのkeyを使う

nuster-rule imgs key method.scheme.host.path if { path_beg /imgs },すると1つのキャッシュしか生成されません。そして、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
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1