リバースプロキシとは?|プロキシサーバーの説明

リバースプロキシは、Webサーバーを攻撃から保護し、パフォーマンスと信頼性の利点を提供できます。フォワードプロキシとリバースプロキシの詳細をご覧ください。

Share facebook icon linkedin icon twitter icon email icon

リバースプロキシ

学習目的

この記事を読み終えると、以下のことができます。

  • プロキシサーバーの定義
  • フォワードプロキシとリバースプロキシの違いを説明
  • リバースプロキシを使用する利点の概要

リバースプロキシとは?

リバースプロキシは、Webサーバーの前にあり、クライアント(Webブラウザーなど)のリクエストをそれらのWebサーバーに転送するサーバーです。通常、リバースプロキシは、セキュリティ、パフォーマンス、および信頼性を向上させるために実装されます。リバースプロキシがどのように機能し、それが提供する利点をよりよく理解するために、まずプロキシサーバーとは何かを定義しましょう。

プロキシサーバーとは?

プロキシ、プロキシサーバー、またはWebプロキシとも呼ばれるフォワードプロキシは、クライアントの機械のグループの前にあるサーバーです。これらのコンピューターがインターネット上のサイトやサービスにリクエストを送信すると、プロキシサーバーはそれらのリクエストを傍受し、それらのクライアントに代わって仲介者のようにWebサーバーと通信します。


たとえば、一般的なフォワードプロキシ通信に関係する3台のコンピューターに名前を付けましょう:

  • A:これはユーザーのホームコンピューターです
  • B:これはフォワードプロキシサーバーです
  • C:これはWebサイトの配信元サーバーです(Webサイトデータが保存されるところです)
Forward Proxy Flow

標準のインターネット通信では、コンピューターAはコンピューターCに直接アクセスし、クライアントは配信元サーバーリクエストを送信し、配信元サーバーはクライアントに応答します。フォワードプロキシが設定されている場合、Aは代わりにリクエストをBに送信し、BはリクエストをCに転送します。その後CはBに応答を送信し、Bは応答をAに転送します。


なぜこの余分な仲介者をインターネットアクティビティに追加するのでしょうか?フォワードプロキシを使用する理由はいくつかあります:

  • 州または機関の閲覧制限を回避するため - 一部の政府、学校、およびその他の組織は、ファイアウォールを使用して、ユーザーに限定バージョンのインターネットへのアクセスを許可しています。フォワードプロキシを使用すると、ユーザーがアクセスしているサイトに直接ではなくプロキシに接続できるため、これらの制限を回避できます。
  • 特定のコンテンツへのアクセスをブロックするため - 逆に、ユーザーのグループが特定のサイトにアクセスできないようにプロキシを設定することもできます。たとえば、学校のネットワークは、コンテンツフィルタリングルールを有効にし、Facebookやその他のソーシャルメディアサイトからの応答の転送を拒否するプロキシを介してWebに接続するように構成できます。
  • オンラインで身元を保護するため - 場合によっては、通常のインターネットユーザーは単にオンラインでの匿名性の向上を望みますが、インターネットユーザーは政府が政治的反対者に深刻な結果を課す可能性のある場所に住んでいます。ウェブフォーラムまたはソーシャルメディアで政府を批判すると、これらのユーザーに罰金または懲役刑が科せられる可能性があります。これらの反体制派の1人が政治的にデリケートなコメントを投稿するWebサイトに接続するためにフォワードプロキシを使用する場合、コメントの投稿に使用される IPアドレスは反体制派にさかのぼることがより困難になります。プロキシサーバーのIPアドレスのみが表示されます。

リバースプロキシはどのように違いますか?

リバースプロキシは、1つ以上のWebサーバーの前に置かれ、クライアントからのリクエストを傍受するサーバーです。これは、プロキシがクライアントの前にあるフォワードプロキシとは異なります。リバースプロキシを使用すると、クライアントがWebサイトの配信元サーバーにリクエストを送信すると、それらのリクエストは、リバースプロキシサーバーによってネットワークエッジで傍受されます。リバースプロキシサーバーは、配信元サーバーにリクエストを送信し、配信元サーバーから応答を受信します。


フォワードプロキシとリバースプロキシの違いはわずかですが、重要です。簡単にまとめると、フォワードプロキシはクライアントの前にあり、配信元サーバーがその特定のクライアントと直接通信することはないということです。一方、リバースプロキシは配信元サーバーの前にあり、クライアントがその配信元サーバーと直接通信しないようにします。


もう一度、関係するコンピューターに名前を付けて説明しましょう:

  • D:任意の数のユーザーのホームコンピューター
  • E:これはリバースプロキシサーバーです
  • F:1つ以上の配信元サーバー
Reverse Proxy Flow

通常、DからのすべてのリクエストはFに直接送られ、FはDに直接応答を送信します。リバースプロキシを使用すると、DからのすべてのリクエストはEに直接送られ、EはFにリクエストを送受信します。その後、Dに適切な応答を渡します


以下に、リバースプロキシの利点の一部を示しています:

  • 負荷分散 - 毎日何百万人ものユーザーを獲得する人気のあるWebサイトでは、単一の配信元サーバーですべての着信サイトトラフィックを処理できない場合があります。代わりに、サイトを異なるサーバーのプールに分散し、すべてが同じサイトのリクエストを処理できます。この場合、リバースプロキシは、単一サーバーが過負荷になるのを防止するために、着信トラフィックを異なるサーバー間で均等に分散する負荷分散ソリューションを提供できます。サーバーで完全に障害が発生した場合、他のサーバーがステップアップしてトラフィックを処理できます。
  • 攻撃からの保護 - リバースプロキシを配置すると、Webサイトまたはサービスは、配信元サーバーのIPアドレスを明らかにする必要がなくなります。これにより、攻撃者が DDoS攻撃などの標的型攻撃を利用することがはるかに困難になります。代わりに、攻撃者はCloudflareの CDN などのリバースプロキシのみを標的にできるようになります。これにより、セキュリティが強化され、サイバー攻撃を防ぐためのリソースが増えます。
  • グローバルサーバー負荷分散 (GSLB) この形式の負荷分散では、Webサイトを世界中の複数のサーバーに分散でき、リバースプロキシはクライアントを地理的に最も近いサーバーに送信します。これにより、リクエストと応答が移動する必要がある距離が短縮され、読み込み時間が最小限に抑えられます。
  • キャッシング - リバースプロキシもコンテンツをキャッシュできるため、パフォーマンスが向上します。たとえば、パリのユーザーがロサンゼルスのWebサーバーで逆プロキシされたWebサイトにアクセスすると、ユーザーは実際にパリのローカルリバースプロキシサーバーに接続し、LAの配信元サーバーと通信する必要があります。その後、応答データをキャッシュ(または一時的に保存)できます。その後、サイトを閲覧するパリのユーザーは、パリのリバースプロキシサーバーからローカルにキャッシュされたバージョンを取得するため、パフォーマンスが大幅に向上します。
  • SSL暗号化 - 各クライアントのSSL(またはTLS)通信の暗号化と暗号化解除は、配信元サーバーにとって計算コストが高くなる可能性があります。リバースプロキシを構成して、すべての着信リクエストを復号化し、すべての発信応答を暗号化して、配信元サーバー上の貴重なリソースを解放できます。

リバースプロキシの実装方法

一部の企業は独自のリバースプロキシを構築していますが、これには集中的なソフトウェアおよびハードウェアエンジニアリングリソースと、物理的なハードウェアへの多大な投資が必要です。リバースプロキシのすべてのメリットを享受する最も簡単で費用対効果の高い方法の1つは、CDNサービスにサインアップすることです。たとえば、 Cloudflare CDN は、上記のすべてのパフォーマンスとセキュリティ機能、および他の多くの機能を提供します。