私は、RailsスタックによってレンダリングされるWebアプリケーションの全ページ(数千ページ)をキャッシュしたいが、頻繁には変更しない。各レンダリングは、リソースに関してかなり高価です。VarnishdはRailsで使用する適切なキャッシュソリューションですか?
Varnishdの仕組みを理解しておくと、URLを最初に呼び出したときに、Varnishdがキャッシュストアをチェックしてミスが発生するため、要求がRailsに渡され、生成されるページが生成されますVarnishdキャッシュに追加されます。
その後、そのURLに対して呼び出しが行われた後、Varnishdキャッシュから提供された場合、Railsスタックは関与しません。
これは正しいのですか?
キャッシュストアに加えられた変更を反映するために、特定のページが更新されたときにアプリがVarnishdに伝える方法を教えてください。&
この目的にはVarnishdが適していますか?
あなたの助けてくれてありがとう - 私はこれらは非常に基本的な質問であることを知っていますが、ドキュメントはこれを明確にしていません(少なくとも私に)。 http://www.mnot.net/cache_docs/
あなたはHTTPレスポンスに有効期限時間を指定する必要がありますキャッシングとリバースプロキシを使用するには:
正しいですが、VarnishはHTTPキャッシュ付きHTTPリバースプロキシであり、HTTPキャッシュ用に最適化されています。あなたがHerokuを試したなら、あなたはVarnishを試みました。 – yfeldblum
ほとんどのリバースプロキシは、実際には新しいコンテンツが利用可能であることをキャッシュに伝える方法を持っていますが、フラッシュするサーバーを知り、それらを通知する方法を構成する必要があります。 Varnishには、アプリケーションから、または手動で接続できる管理インタフェース(制御チャネル)があります。したがって、フラッシュするサーバーが分かっていれば、それを行うのは簡単です。 –