esi:include タグを使用してモジュールをインクルードするコンテンツ ページがあるので、
/content.html
含む
<esi:include src="/_esi/module.html">
どちらの URL も、応答で cache-control ヘッダーを送信します。/content.html の場合は
Cache-Control: public, max-age=86400
/_esi/module.html の場合は
Cache-Control:public, max-age=3600
/content.html をロードすると、varnish からキャッシュされた応答を取得していることがわかります。また、module.html マークアップが適切に含まれていることがわかります。ただし、module.html を変更して禁止すると、次のようになりますban req.url == /_esi/module.html
。 :ban req.url ~ _esi
ブラウザのページはまだ変更されません。
これについては、ワニスのドキュメントではあまり見つけられないようです。含まれているコンテンツ (つまり、ESI URL からのフラグメント) を明示的に無効にすることはできますか? それとも、有効期限が切れるまで待つ必要がありますか?
また、これを実現するために PURGE を実装して使用しようとしましたが、そのインクルードから新しいコンテンツを取得できないようです。