メインコンテンツまでスキップ

リバースプロキシとは何ですか

· 約6分
Diverta

リバースプロキシについてのブログ記事で、従来のフォワードプロキシとの違いについても説明します。

注意

この文章は機械翻訳によって提供されています。原文は英語であり、OpenAIによって翻訳されました。

プロキシサーバー:概要

インターネットは、多くのデバイス(コンピュータ)がデータをやり取りしていると考えることができます。リソースを取得するデバイス(たとえば、ウェブブラウザを使用する個人のコンピュータ)は「クライアント」と呼ばれ、データを送信するデバイスは「サーバー」と呼ばれます。直接的なクライアントとサーバーの通信は可能ですが、セキュリティ上の懸念から、通常は他のデバイス(プロキシサーバー)が中間に存在してこれを処理します。

プロキシサーバーは単純に、他のデバイス間でデータを中継するデバイスです。プロキシからデータを受け取るデバイスはクライアントまたは他のサーバーであることがあります。従来のフォワードプロキシサーバーは他のサーバーの前に配置され、そのデータをクライアントに中継します。これにはいくつかの重要な目的があります。

  • オリジナルサーバーのIPアドレスを隠し、匿名性を提供し、のぞき見から保護すること
  • ルーティングとアクセス制御により、ユーザーがアクセスできるリソースを制限する(または特定の国に位置する場合など、ブラウジング制限をバイパスする)こと
  • ユーザーのデータをキャッシュしてパフォーマンスを向上させること

リバースプロキシサーバー

その名前が示すように、リバースプロキシサーバーはフォワードプロキシの逆方向で動作します。その主な目的は、クライアントデバイスからの潜在的な攻撃経路からバックエンドサーバーを保護することであり、次のような追加の有用な機能も提供します。

負荷分散: リバースプロキシの一般的な機能は、クライアントのリクエストを必要に応じて異なるオリジンサーバーにルーティングすることです。ウェブサイトが短期間に何百万回もの訪問を受ける場合、そのトラフィックを受ける個々のサーバーは過負荷になり、応答に失敗します。リバースプロキシは、トラフィックをネットワーク上の複数のサーバーに適切に分散するようにプログラムされており、より良いパフォーマンスを保証します。個々のオリジンサーバーが何らかの理由で失敗した場合、リバースプロキシはトラフィックがそれにルーティングされないようにもできます(クライアントからの失敗したリクエストの数を減らします)。

キャッシュ: リバースプロキシは、クライアントの地理的位置を検出することができることがよくあります。クライアントのリクエストは最も近いサーバーにルーティングされるため、速度とパフォーマンスが大幅に向上します。しばしばCDN(コンテンツデリバリーネットワーク)は、ウェブサイトのリソースをリバースプロキシサーバーにキャッシュし、クライアントがデフォルトで最も近い地理的なサーバーにアクセスできるようにします。

ファイルの圧縮: リバースプロキシは、オリジンサーバーから送信されるファイルを圧縮することができます。これにより、ファイルがクライアントにより速く配信され、ダウンロードにかかる時間が短くなり、帯域幅も少なくなります。

SSLの処理: SSL証明書の復号化はオリジンサーバーで処理することもできますが、リソースを節約するためにプロキシサーバーがこの機能をすべて処理することもできます。

リバースプロキシの設定方法

1) 自社で構築する: 専任のバックエンドチームを持つ大企業は、独自のリバースプロキシシステムを構築することを検討するかもしれません。このアプローチには多くのリソースとサーバー機器への資本支出が必要です。明らかな利点は、カスタマイズの制限なしに会社がシステムを完全に制御できることです。会社の具体的なニーズによりますが、リバースプロキシングはユーティリティと見なされることが多く、カスタムビルドおよびメンテナンスされたシステムが必要とされることはまれです。

2) クラウドベースのソリューションを使用する: リバースプロキシングやその他のエッジベースのソリューションを提供するプラットフォームは、オンラインユーティリティとして広く利用可能です。Kurocoは、リバースプロキシングやWAFなどのエッジベースのソリューションを提供し、低コストで簡単に設定および管理できます。