Varnishはバックエンドが複数ある場合、そのうちひとつが死んでも残りのバックエンドを使うfailover機能がありますが バックエンドに画像が何もなかったときはどうなるでしょうか?通常の場合はそのまま404を返します。 しかし、画像が投稿されてから非同期でサムネを作成したり、何らかの画像処理を行ったりで一時的にデフォルトの画像を出したいことがあります。 いわばファイル版のfailoverみたいなもんですね。方法がありますので書いてみます。 通常varnishがファイルに対して存在するかしないかを判定できるのはvcl_fetchですが その段階からこのファイルをもう一回リクエストして!みたいなことはできません。 そこで利用するのがrestartです。 これを使うとvcl_pass,miss,hit,fetch,deliver,errorから再度vcl_recvへ処理を戻すことができます。