vcl_deliver
キャッシュがクライアントに配送される前に呼ばれる
vcl_pipe 経由のリクエストを除く、すべてのリクエストワークフローの共通の最終出口 ヘッダーを削除したり、キャッシュに保存されないはずのヘッダーを追加したりする必要がある場合はここで行う
code:vcl
sub vcl_deliver {
return(deliver);
}
ここで修正するのに最も便利で一般的な変数
resp.http.*
クライアントに送信されるヘッダ
resp.status
HTTP ステータスコード
resp.reason
クライアントに返される HTTP ステータスメッセージ
obj.hits
キャッシュヒット数
0 はキャッシュミスの数なので調査で使える
req.restarts
VCL で発行された再起動の数
HTTP ヘッダーフィールドの修正
リソースが見つかった場合には HIT 、そうでない場合には MISS という文字列をヘッダーに追加する
code:vcl
sub vcl_deliver {
set resp.http.X-Age = resp.http.Age;
unset resp.http.Age;
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
} else {
set resp.http.X-Cache = "MISS";
}
}
Fastly
キャッシュから配信されたレスポンスやバックエンドから受信したレスポンスなど、すべてのレスポンスに対して個別に実行されるため、デバッグ情報やユーザと共有できないユーザ固有のセッションデータを追加するのに最適
Set-Cookie 情報の追加