1

私のサイトの 1 つで、私のコンテンツ ページ (Cookie を設定するべきではなく、すべて「Cache-Control: public」を max-age セットで返す必要があり、認証を必要としない) の問題に気付きました。

私の問題は、どういうわけか HitPass オブジェクトが私のキャッシュに入り、そのページからキャッシュを削除していることです。これをデバッグする必要がありますが、特に問題を再現できないため、これを行う最善の方法について混乱しています。

varnish ログの HitPass の横に varnish の ID が表示されることに気付きました。これは、HitPass を生成したリクエストのニス ID であり、ニスのログを検索すると、応答の何が問題だったのか正確にわかるでしょうか?

キャッシュしたいページから SetCookie ヘッダーを削除したほうがよいでしょうか? 問題は、URL が渡された場合でも vcl_fetch が呼び出されることです...現在の要求が vcl_recv によって渡されたかどうかを vcl_fetch で確認する方法はありますか?

4

1 に答える 1

0

SetCookie is indeed a reason why you get hit-for-pass objects in your cache. This is an important optimization for non-prepared sites. A hit-for-pass will let varnish go straight to the backend for each of these request instead of stall them and wait for the response of the previous one.

何をデバッグしたいのか正確にはわかりません。それが set-cookie である場合は、バックエンドからそれを削除するか、キャッシュ内で何をキャッシュするか、何を無視するかについて独自のルールを作成する必要があります。それでも set-cookie が必要で、一意の値がある場合は、hit-for-pass が最適な方法です。

于 2012-12-13T20:07:08.980 に答える