LOG IN SIGN UP
Documentation

オリジンシールドサービスを利用したキャッシュ HIT および MISS ヘッダーの理解

  Last updated April 24, 2018

ここでは、オリジンシールドを利用している場合に、キャッシュ HIT および MISS ヘッダーの判読に役立つ内容をいくつか記載します。 Fastly のレスポンスヘッダーを取得するため、同じオブジェクトに対して cURL コマンド (例えば curl -svo /dev/null www.example.com) をターミナル上で実施した際の結果を見てみましょう。

上記の cURL コマンドの最初のリクエストは、以下のような出力結果になるかもしれません :

1
2
3
X-Served-By: cache-iad2120-IAD, cache-sjc3120-SJC
X-Cache: MISS, MISS
X-Cache-Hits: 0, 0

最初のリクエストでは、 オリジンシールドを利用しているため X-Served-By で 2 つのキャッシュノードが見られます。cache-iad2120-IAD は、シールドのデータセンターの配信キャッシュノードとして、またcache-sjc3120-SJCは、 " ローカル " データセンターの配信キャッシュノードとして配信をしています。 X-Cache: MISS, MISS は、リクエストされたオブジェクトがシールドキャッシュ (MISS) 、 ローカル配信ノード ( こちらも MISS ) のどちらにも存在しなかったことを示しています。X-Cache-Hitsは、 0, 0を表示しているため、同様に MISS であることを反映しています。

上記の cURL コマンドの 2 回目のリクエストは、以下のような出力結果になるかもしれません :

1
2
3
X-Served-By: cache-iad2120-IAD, cache-sjc3120-SJC
X-Cache: MISS, HIT
X-Cache-Hits: 0, 1

2 回目のリクエストでは、同じローカルキャッシュノード (cache-sjc3120-SJC) にアクセスし、HIT の結果を得ました。 cache-iad2120-IAD に対する MISS はそのオブジェクトに対して最後にリクエストされた時のノードの状態、つまり初回のリクエストが MISS であったことを示しており、現在の状態を反映しているものではありません。当該オブジェクトは両方のデータセンターで現在キャッシュされています。

1, 2 分待った後、上記の cURL コマンドを使って同じオブジェクトに対する 3 回目のリクエストを行うと、以下の様な結果になるかもしれません :

1
2
3
X-Served-By: cache-iad2120-IAD, cache-sjc3122-SJC
X-Cache: MISS, HIT
X-Cache-Hits: 0, 1

この3回目のリクエストは、新しいキャッシュ (cache-sjc3122-SJC) が " ローカル "データセンターで選択されたことを示しています。ローカルデータセンターで当該オブジェクトはキャッシュされているので HIT となり、シールドのデータセンターの状態はまだ MISS ですが、それは初回のリクエストの状態のことになります。X-Cache-Hits0, 1 を示していますが、シールドデータセンターが 0 で 1 は、 cache-sjc-3122-SJC において1回目の HIT であることが反映されています。

もし最も近い配信キャッシュノードがシールドデータセンターにあった場合、以下のように 1 つのサーバーと 1 つの HIT のみが表示されるという点に留意ください :

1
2
3
X-Served-By: cache-iad2120-IAD
X-Cache: HIT
X-Cache-Hits: 1

当該オブジェクトをパージした後に再び上記 cURL コマンドでリクエストを行うと、以下のように最初のリクエストと同じような結果が生成されるはずです :

1
2
3
X-Served-By: cache-iad2120-IAD, cache-sjc3120-SJC
X-Cache: MISS, MISS
X-Cache-Hits: 0, 0

Back to Top