vcl_pass
pass モードで呼ばれる
クライアントからのコネクションをバックエンドにそのまま接続
同じリクエストが複数回来た場合には最初の 1 回をバックエンドに流して他のリクエストは待機状態にさせる
バックエンドからリクエストが戻ってきた場合には待機させていたリクエストにも同じものを返す
pipe よりも pass を使うほうが良い
アクション
fetch
進行中のリクエストは pass モートで進行
オブジェクトはキャッシュされずにクライアントに渡る
synth
対応するサブルーチンへ渡る
restart
対応するサブルーチンへ渡る
hit-for-pass
オブジェクトがキャッシュされない場合に使用
?
Fastly
バックエンドフェッチ直前の通常はフェッチノード上で実行される
クライアントのリクエストがコピーされbereq として利用可能
これに加えられた変更はクライアントのリクエストの状態や、レスポンスが保存されるキャッシュに影響を与えない
=> バックエンドに送信したくないヘッダを削除したり、バックエンドが必要とする認証データを追加したりするのに適している
バックエンドの取得を開始するために return(pass) を返す必要がある
vcl_miss と同じ設定になることが多いので、下記のようなタスクの設定を行うのが良い code:vcl
sub miss_pass {
# Common logic goes here
}
sub vcl_pass {
call miss_pass;
}
sub vcl_miss {
call miss_pass;
}