web-dev-qa-db-ja.com

リバースプロキシの追加-nginxまたはワニス

現在、ほとんどのRailsおよびLAMPアプリをApacheおよびApacheパッセンジャー経由で提供していますが、サーバーの負荷をいくらか減らすために、リバースプロキシとしてNginxまたはVarnishを追加することを検討しています。

あなたがcan VarnishとNginxを一緒に使用していることは承知していますが、両方がどのように機能するかを学ぶために時間の投資があり、可能な場合はインフラストラクチャ内の「可動部品」の数を維持したいと考えています可能な限り低く、私は使用することの長所と短所が何であるかを解明しようとしています:

  • リバースリバースプロキシ/キャッシュとしてのnginx自体
  • リバースプロキシ/キャッシュとしてワニスのみ
  • nginxとニスを一緒に

Nginxは非常に高速であることが知られており、人気が高まるにつれて本格的なhttpサーバーとして注目を集めていることを理解しています。そのため、このサーバーの動作を学ぶために時間を費やすという議論を見ることができますが、Varnishはまだ不明です。私。

NCacheがNginxにあるのに、なぜVarnishを使用するのですか?

ありがとう

5
Chris Adams

Edge Side Includes(ESI)を使用する予定ですか?その場合、Nginx ESIモジュールが壊れており、いくつかの未解決のバグがあります。 Varnishを使用する場合、出力は圧縮されないため、Nginxを使用してESIが有効なページの圧縮を行うのに多少行き詰まります。 Pythonフレームワークを使用していますが、Railsも同様です。

現在の設定では、次のようなことができます。

Nginx-> Apache-> Passenger-> Rails Varnish-> Apache-> Passenger-> Rails

どちらも既存のシステムの前にドロップします。 Nginxを使用すると、静的ファイルへの直接アクセスを許可し、Apacheを介してプロキシすることなく静的ファイルにサービスを提供できるようにすることもできます。 Locationディレクティブを使用すると、Webスペースの一部をスライスして、プロキシを経由する必要がないようにすることができます。

ただし、完全にNginxに移行したい場合、インフラストラクチャは次のようになります。

nginx->乗客-> Rails(nginx-> uwsgi-> python)

ワニスを追加すると、次のようになります。

ニス-> nginx->パッセンジャー->レール

eSIを使用しない限り、次のようになります。

nginx->ニス-> nginx->パッセンジャー->レール

ある時点で、ミックスからワニスを取り除くことは非常に興味深くなります。ただし、最近のVarnishリリースは、Nginxのキャッシュよりも高速であり、キャッシュ方法を細かく制御できます。 NginxとVarnishはどちらもかなりの制御を提供しますが、VarnishのVCLを使用すると、デーモンのソースコードに触れることなく、そのままでは実行できないことを実行するCコードを記述できます。それがあなたにとって役立つかどうかはあなた次第です。

現在Apacheを使用しているので、Nginxに移行してApacheを完全に削除しない限り、Varnishを前面に配置する傾向があります。あなたの場合のワニスは、よりドロップインソリューションです。将来ESIを使用することにした場合は、両方を実行する必要があります。

1
karmawhore

これは、Varnish、Nginx(注目株)、Apache Traffic Server(別のプロキシキャッシュ)、G-WAN(Cスクリプトを備えたアプリケーションサーバー)、およびLighttpd(本当に優れたwwebサーバー)の比較テストです。

http://nbonvin.wordpress.com/2011/03/24/serving-small-static-files-which-server-to-use/

Apache Traffic Serverは、Inktomiによって作成されたHTTPプロキシおよびキャッシュサーバーであり、InktomiがYahooに買収される前に商用製品として配布されていました。

Yahooは、TSを使用して1日あたり300億を超えるオブジェクトを提供していると述べています。また、TSは「文字通り何百年もの開発者年の製品」であるとも言われています。

1
Bert