web-dev-qa-db-ja.com

ロードバランサーとリバースプロキシの違いは何ですか?

ロードバランサーとリバースプロキシの違いはわかりません。どちらも同じ動作をしているように見えます。受信リクエストをバックエンドサーバーに配信することです。

124
Morgan Cheng

あなたの混乱は合理的です-それらはしばしば同じものです。しかしいつもではない。ロードバランサーとは、非常に具体的なものを指します。つまり、2つ以上のWebサーバー間で着信要求を分散して負荷を分散するサーバーまたはデバイスです。ただし、リバースプロキシには通常、いくつかの機能があります。

  1. ロードバランシング:上記のとおり

  2. キャッシング:背後にあるWebサーバーからのコンテンツをキャッシュし、Webサーバーへの負荷を軽減し、Webサーバーからデータを取得することなく、静的コンテンツをリクエスタに返すことができます。

  3. セキュリティ:インターネットからの直接アクセスを防ぐことにより、Webサーバーを保護できます。 Webサーバーを難読化するだけの簡単な方法でこれを実行するか、悪意のあるコードを探すインバウンド要求を実際に確認するアクティブなコンポーネントがいくつかある場合があります。

  4. SSLアクセラレーション:SSLを使用する場合。暗号化を処理するワークロードがWebサーバーからオフロードされるように、これらのSSLセッションの終了点として機能する場合があります。

これでほとんどカバーできると思いますが、見逃していた機能が他にもいくつかあるでしょう。確かに、デバイスやソフトウェアの一部がロードバランサー/リバースプロキシとして販売されていることは珍しくありません。これは、機能が一般的にバンドルされているためです。

121
icky3000

また、リバースプロキシはWebサーバーに固有です。

ただし、ロードバランサーは他の多くのプロトコルを処理できます。現在、Web(HTTP)が大きなアイデアですが、DNS、メール(SMTP、IMAP)などの負荷分散も可能です。ほとんどの人が「インターネット」または「IPネットワーク」を考えるのは、ちょうど最近のことです。もっとあいまいな、あるいはニッチなものがあるかもしれません。

26
DM

最終的な結果(サーバー間の要求の分散)はさまざまなロードバランサーとリバースプロキシで同じですが、要求の分散に使用される方法に違いがあります。

一部のロードバランサーはDNSを使用してトラフィックを分散し、同じ名前をラウンドロビンで異なるIPに解決して、要求を効果的にリダイレクトします。これは、データセンターまたは他の物理的な場所の間で要求をロードバランシングするときに役立つ場合があります。 「インスタント」フェイルオーバーが必要な場合は、クライアントのDNSサーバーがTTLを指定したことを尊重するようになっているため、これは適切な選択ではありません。CiscoのGSS(Global Site Selector )は、DNSベースのロードバランシングの良い例です。

他のロードバランサーは、仮想IP宛てのパケットヘッダーをファーム内のサーバーの実際のIPに書き換えることで機能します。これにより、リアルタイムの負荷分散とほぼ瞬時のフェイルオーバーが実現します。この例は、CiscoのCSM(コンテンツスイッチングモジュール)です。

上記の両方の例で、クライアントとサーバー間でTCP会話があることに注意してください。

リバースプロキシは、Webサーバーに代わって要求を受け入れ、その要求をWebサーバーにエコーしてクライアントに返すことで機能します。同様の要求が続く場合は、オプションで結果をキャッシュします。

クライアントが実際にWebサーバーへの接続を確立することはありません。むしろ、会話は厳密にプロキシとクライアントの間で行われます。

14
Brian Tillman

ロードバランサーは、レイヤー3からレイヤー7までのトラフィックのバランスをとることができますが、リバースプロキシはHTTP固有です。

6
Kris Roofe

リバースプロキシは、クライアントからの要求を受け入れ、それを実行できるサーバーに転送しますし、サーバーの応答をクライアントに返します(つまり、リバースの背後にあるサーバーを意味します)プロキシは、プロトコルの多少異なる機能または異なるプロトコルと通信できます。

A ロードバランサーは、受信したクライアント要求をサーバーのグループに分散し、それぞれの場合に、選択されたサーバーから適切なクライアントに応答を返します。

3
Manu Prasadh