リバースプロキシと通常のプロキシ(フォワードプロキシ)の違い

 先日、「リバースプロキシサーバと一般的に言われるプロキシサーバはどう違うのか?」という質問を受けました。

 そもそも「プロキシサーバとは何か?」

 そこで、今回はリバースプロキシと通常のプロキシ(フォワードプロキシ)の違いについて書いてみます。一般的に言われるプロキシサーバとは、ファイアウォールでPCが直接Webアクセス出来ないようになっている場合に、外部のWebサイトへのアクセスをプロキシサーバに依頼します。プロキシ(proxy)=代理と言われる所以でもあります。

 次にリバースプロキシサーバとは何をするかについて説明します。

 例えば、PCがhttps://www.example.jp/ というWebサイトにアクセスするとします。直接http://www.example.jp がコンテンツを返すのではなく、リバースプロキシサーバがhttp://www.example.jp への接続要求を受けて、コンテンツを持っているサーバに中継します。「PCからの接続要求を代理で行う」という点に関しては同じですが、「どこにプロキシサーバがあるのか?」という点がポイントになります。

 通常のプロキシサーバがLAN内にあるのに対し、リバースプロキシサーバは、WANの向こう側にあります。
 分かりやすく言うと、「インターネットの向こう側なのか、手前(LAN)側なのか」ということになります。
PC→プロキシサーバ→(インターネット)→Webサーバ という流れと、
PC→(インターネット)→リバースプロキシサーバ→Webサーバという流れがあります。

 もちろん、両方を挟む場合もあり得ます。
PC→プロキシサーバ→(インターネット)→リバースプロキシサーバ→Webサーバという構成になります。
 
 プロキシサーバのセキュリティ面的効果について

 プロキシサーバもリバースプロキシサーバも両方共にセキュリティ面的効果はあります。前者の場合は外部アクセスをプロキシサーバに限定することでファイアウォールのルールを簡略化出来ます。それ以外にもアクセスログを取りやすいというメリットがあります。
 リバースプロキシサーバのメリットは、https通信の場合、バックエンドにあるWebサーバにSSLによる暗号化/復号処理を担わせなくて済むという点が1つ。(これはSSLアクセラレータでも行うことです。そういう意味ではSSLアクセラレータもリバースプロキシ機能があるとも言えます。)

 他には、データベースサーバを剥き出し(インターネットに晒す)にしなくてもよくなるという点です。
リバースプロキシサーバ–>Webサーバ–>データベースサーバというようにすることで、ファイアウォールによるアクセスコントロールでWebサーバやデータベースサーバを安全なエリアに配置して、通信制御が可能になります。

 プロキシサーバの役目を買い物に喩えると…

 最後になりますが、「通常のプロキシサーバ(フォワードプロキシサーバ)は、買い物代行サービスのイメージ」
「リバースプロキシサーバは、生産者側がスーパーなどの小売店に代理販売を依頼するイメージ」と考えていただければ分かりやすいかと思います。インターネットの手前か向こう側かという説明もありますが、
 この場合の喩えだと、自分が欲しい商品をスーパーで買ってきてもらう(またはスーパーが注文を受けて届けてくれる)のがプロキシサーバで、生産者側が売り捌く手間をスーパーに代行してもらうのがリバースプロキシサーバと考えると理解が進むのではないでしょうか。
リバースプロキシサーバと通常のプロキシサーバの違いについて

  • このエントリーをはてなブックマークに追加

コメントをどうぞ