私はVarnish/Nginx/Apache実装の潜在的なシナリオを調査しており、このセットアップについていくつか質問があります。
ApacheをNginxに置き換えるのではなく、3つすべてを組み合わせて使用したいと考えています。
現時点では、VarnishをNginxの前に配置する必要があるかどうか、静的コンテンツを提供して動的コンテンツをApacheに渡すか、NginxとApacheの間に配置するかがわかりません。
Nginxキャッシュを有効にする必要がありますか、それとも有効にしてVarnishをまったく使用しないでください。
Apacheログに基づいて統計を処理するスクリプトがいくつかありますが、動的なリクエスト統計のみを保持するApacheのログだけでなく、スクリプトにログ全体を処理させるにはどうすればよいですか?
キャッシュされたファイルへのアクセスはApache/Nginxによってログに記録されないため、Varnishがアクセス統計をApache/bginxに渡すようにするにはどうすればよいですか?
それは本当に問題のサイトのコンテンツとあなたが使用しているキャッシュスキームに依存します。
以前、非常にトラフィックの多いサイト(1日あたり100万以上のユニーク数)についてこのシナリオを確認しましたが、最終的には、Varnishを使用せずにNginxとApacheを使用しました。これは、既存のキャッシュ方法とページ上の動的コンテンツの量が原因であったため、Varnishキャッシュイメージとcssやjsなどの静的ファイルしか使用できませんでした。テスト中に、Apacheを構成に保持したかったので、NginxまたはVarnishの質問になりました。私たちが行ったベンチマークでは、Nginxが大量にVarnishよりも高速に動作することが示されました。
実行できたが実行できなかったことの1つは、動的ページセクションを別のリクエストにロードしてから、コンテンツをブラウザーに挿入することでした。これにより、Varnishを使用して、動的要素をに渡しながら、より多くのオブジェクトをキャッシュできるようになりました。 ApacheとキャッシュミスでNginxを介して静的コンテンツを提供します。
ロギングの問題に関しては、ログを解析/マージするスクリプトを作成する必要があります。その後、マージログに対して統計スクリプトを実行できます。そこにはいくつかの優れたログマージツールがあると思いますが、現時点では1つを考えることはできません。
ワニスはHTTPSをサポートしていません。それを使用したい場合は、Nginxを外側に置き、クライアントと話します。
トラフィックの少ないサーバーの場合、Nginx + Apacheのみを使用することにしました。負荷が高い場合は、NginxとVarnishのキャッシュパフォーマンスを比較すると便利な場合があります。