2

Apache WebサーバーにVarnishキャッシュをインストールし、正しく構成しました。これで問題なく動作し、VarnishCacheを介して自分のWebページにアクセスできるようになりました。

ワニスのデフォルトの動作は、Webサーバーによって提供されるページのコピーを保存することです。次回同じページがリクエストされると、VarnishはApacheサーバーからページをリクエストする代わりにコピーを提供します。

そして今、私の質問が来ます:アクセスするページを持っていなくても、Varnishキャッシュを設定した後、最初にWebサイト全体をキャッシュして、それをキャッシュに保存することは可能ですか?これは、ワニスがセットアップされた後、キャッシュが最初は空であり、キャッシュで使用できるようにするにはページにアクセスする必要があるためです。これは、各ページに手動でアクセスしなくても実行できますか?

4

2 に答える 2

4

あなたが探しているのは、キャッシュをウォームアップする方法です。varnishreplayまたは、Wget や HTTrack などのWeb クローラーを使用して、サイトを通過することができます。または、ページのサイトマップがある場合は、それを出発点として使用し、それをループしてキャッシュをウォームアップし、curl や wget などを使用してページにリクエストを発行することもできます。

varnishreplay を使用するには、最初に varnishlog を実行してトラフィックのログを収集してから、後でトラフィックの再生とキャッシュのウォームアップに使用する必要があります。

Wget、HTTrack などは、あなたのホームページを指すことができ、あなたのサイトをクロールします。ただし、サイトのサイズと性質によっては、これは実用的ではない場合があります (たとえば、Ajax を広範囲に使用している場合)。

ページがバックエンド サーバー (Apache など) からロードするのに非常に長い時間がかからない限り、キャッシュのウォームアップについてあまり心配する必要はありません。キャッシュされたコンテンツの TTL が十分に高い場合、ほとんどの訪問者はとにかくキャッシュされたコンテンツのみを受け取ります。

于 2013-01-09T12:46:46.350 に答える
1

req.hash_always_miss を使用し、Varnish 3 および 4 で動作する (サイトマップも使用する) もっと良い方法があります。キャッシュをウォームアップし、キャッシュをパージすることなく古いページを更新します。完全な図、構成方法の概要、およびさまざまなユースケースの 3 つのスクリプトは、http: //www.htpcguides.com/smart-warm-up-your-wordpress-varnish-cache-scripts/ で概説されており、簡単に適用できます。 WordPress 以外のサイト。

于 2015-08-17T15:24:12.943 に答える