使用頻度の高い Web サイトのキャッシュ戦略を設計中です。このサイトは、動的コンテンツと静的コンテンツの混合で構成されています。フロントエンドは PHP、中間層は Tomcat、背面は mysql です。
認証情報を保護するために、ユーザー ログイン画面のみが HTTPS 経由で実行されます。その後、すべてのコンテンツはプレーン HTTP 経由で提供されます。一部の画面は顧客固有のもの (最後の注文など) ですが、他の画面はすべての人に共通のもの (最も人気のある製品、プロモーション、ルールなど) です。
予想されるトラフィック量を考えると、包括的なキャッシング戦略が必要であることは明らかです。そのため、次のオプションを検討しています。
- Squid または Varnish を PHP の前に置き、すべてのパブリック コンテンツと顧客の注文送信フォームをキャッシュするように構成します。
- PHP で memcached を使用して、ページ フラグメント (最も人気のある製品など) をキャッシュします。
- 中間層/Tomcats にキャッシングを実装します (つまり、コンテンツを Web サーバーに返す前に、ehcache などのローカル キャッシュから取得してみてください)。
- Zend Cache のような PHP レベルのキャッシュを使用して、そこにページのフラグメントを保存します。これは、私が言及した 2 番目のオプションに近いものですが、Zend フレームワークに組み込まれています。
これらの戦略を組み合わせて使用する可能性があります。
問題は、Varnish のようなフロント キャッシュを追加する価値があるのか、それとも内部で Zend Cache を使用するだけの価値があるのかということです。
言及するのを忘れていたもう 1 つのオプションは、Zend Cache のような PHP レベルのキャッシュを使用して、そこにページのフラグメントを保存することです。これは、私が言及した 2 番目のオプションに近いものですが、Zend フレームワークに組み込まれています。
問題は、Varnish のようなフロント キャッシュを追加する価値があるのか、それとも内部で Zend Cache を使用するだけの価値があるのかということです。
ありがとう、フィロパトル。