nginxを使用するよりも、nginxを使用した場合の方が優れていますか?[閉まっている]


22

私はワニスでnginxを使用することについて多くの話を見ますが、その理由はわかりません。nginxでは十分ではありませんか?

NginxにはSSIがあり、リバースプロキシキャッシュがあり、軽量で、SSLがあり、cgi、fpmなどで動作します。

Varnishにも同じものがありますが、sslもcgiもサポートされていません。


「より良い」は本当に主観的です。それは...あなたのユースケースに依存
voretaq7

7
複雑な質問よりも単純な質問のほうがうまく機能する場合があります。この質問を「元のQ&A形式」に良くないと仮定して、この質問を閉じた人々からのそのような行動について非常に心配しています。私はこの主題について検索していますが、この議論の結果を見ることに非常に興味がありました。
ロジャー

varnishには強力なvcl構成、パージ、リバースプロキシキャッシュ、ESI nginxはFCGI、リバースプロキシキャッシュ、ssi、パージなし(モジュールがある場合があります)で機能し、静的ファイル、キャッシュ...私が助けることができる質問があります
ボグダンコス

回答:


14

小さな静的ファイルの場合、nginxよりもワニスが最大5%高速であることがわかりました。Apacheの前のワニス、またはWebアプリサーバーの前のワニスは大きなメリットになります。しかし、nginxの前では、メリットはごくわずかです(特にオーバーヘッドと余分な複雑さを考慮に入れると)


これをサポートするために、いくつかのテスト結果を提供できますか?すでにnginx + opcacheを使用している場合はどうなりますか。ワニスを使用する利点はありますか?
深刻な14年

23

まず、明確にするために:Nginxは、必要なすべての機能と複雑さを備えたWebサーバーです。また、キャッシング機能も備えていますが、それが主な設計目標ではありません。

VarnishはWebサーバーではありません。それはその役割を果たすことはできません(とにかく、本当に邪悪なVCLがないわけではありません)。その役割は、別のサーバーによって提供されるコンテンツをキャッシュすることです。必要に応じて、要求または応答を変更できます。

nginxがトラフィックを処理できる場合、それで十分です。nginxが追いつかない場合、キャパシティを増やす1つの方法は、キャッシュをその前に配置し、キャッシュができるだけ多くのリクエストを処理できるようにすることです。

例として、Apacheを使用して、Webサーバーのクラスターから多数の比較的複雑なPHP Webサイトを実行します。容量の問題が発生し始めたとき、Apacheクラスターの前にVarnishサーバーのペアを配置しました。Varnishホストは、Apacheバックエンドを煩わせることなく、すべての着信リクエストの85%を処理するようになりました。


では、ニスはPHPによって生成された動的コンテンツをキャッシュしますか?それとも他のもの?
アリックスアクセル

ニスは、キャッシュするように指示したものをすべてキャッシュします。PHP出力のみ、静的ファイルのみ、両方、またはどちらもキャッシュできません。これは非常に強力なツールです。
Insyte

私はあなたの特定の例について尋ねていました。動的なアプリケーション(初心者向けのPHPセッション)を台無しにすることなく、動的なコンテンツをキャッシュできることは、私を困惑させます。静的コンテンツをキャッシュすることは、私にとって少し冗長なようです。
アリックスアクセル

3
動的コンテンツに依存します。たとえば、ページがコメント付きのブログ投稿であるとします。コメントスレッドを生成するのは非常に高価ですが、5分間キャッシュすることは完全に許容できます。一方、ウェブメールアプリケーションから返される動的コンテンツをキャッシュすることは明らかに問題があります。混合ケースを作成することもできます。eコマースアプリの全出力をキャッシュしますが、ニスにバックエンドにコールバックしてショッピングカートインジケーターを設定するように指示します。
-Insyte
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.