3

私は最近ワニスを調べて、いくつかの重いグーグル検索をしています。最近、eコマースサイトを運営するサーバーにクリスマスを見越してこれを設定しました。今後数週間で再訪問が増えるため、Varnishを使用することは良い考えのように思われました。

誰かが私のために何かを明確にできるかどうか疑問に思っていました-Varnishを使用しているときに、ユーザーが初めて到着した場合、新しいCookieを検出し(セッションはショッピングカートで使用されるため)、アクセスしたページをキャッシュします。

ただし、顧客が繰り返しアクセスするよりも多くをキャッシュしたい場合は、別のスタックオーバーフロースレッドで、以下を使用して.vclを編集すると、session_startが使用されている場合でもページをキャッシュするのに役立つことがわかりました。

     sub vcl_recv {
     unset req.http.Cookie;
     return (lookup);
     }

     sub vcl_fetch {
     unset beresp.http.Set-Cookie;
     set beresp.ttl = 24h;
     return(deliver);
     }

私の質問は、キャッシュされるものの詳細について少し混乱しています。これは誰かのショッピングカートもキャッシュし、その製品ページへのすべての訪問者にこれを提供しますか?

ここでワニスの基本的なポイントが欠落している場合はお詫びします。最悪のシナリオでは、再訪問の負荷を軽減するのに役立ちますが、サイトをより多くキャッシュする方がさらに良いでしょう!

よろしくお願いします

4

1 に答える 1

2

Varnishは、(デフォルトでは)設定されたCookieを使用してページをキャッシュしません。CookieはHTTPに状態を導入するため、Varnishはページが変更されたかどうかを知ることができません。

ただし、上記のコードスニペットでは問題は修正されません。Cookieヘッダーを完全に削除するだけです。(つまり、PHPバックエンドはセッションCookieを受け取りません。)

サイトがどの程度正確に見えるかに応じて、次のいずれかを行う必要があります。

  • 動作をそのままにします。たとえば、ログインしているユーザーのユーザー名をページ上にキャッシュしたくない場所がある場合。基本的にこの場合、Varnishはゲスト(つまり、セッションのないユーザー)のコンテンツのみをキャッシュします。
  • すべてのページにそのようなユーザー依存のボックスがない場合は、ユーザー依存のページ(ショッピングカートなど)以外のすべてをキャッシュできます。
于 2011-10-14T11:24:19.330 に答える