18.リバースプロキシ設定(1) … リバースプロキシの概要


◆ リバースプロキシも通常のプロキシ(フォワードプロキシ)と同様、クライアントとサーバーの"仲介役"という点では同じである。

◆ 通常のフォワードプロキシは、特定のクライアントが不特定・任意のサーバーにアクセスする際に、クライアント側の安全性を確保したり、キャッシュによるレスポンス性を高めたりといった具合に「特定のクライアントに対して、それを保護したり何らかの機能を提供したりする事」を目的としている。

◆ これに対し、リバースプロキシは、不特定・任意のクライアントからの特定サーバーに対するアクセスに対して、サーバー側の安全性を確保したり、アクセス要求を分散させて負荷を軽減したりといった具合に「特定のサーバーに対して、それを保護したり何らかの機能を提供する事」を目的としている。

 
┌────┐
│Client-A│────┐
└────┘    │ ┌────┐
┌────┐    └→│Reverse │   ┌─────┐
│Client-B│─────→│Proxy  │──→│MainServer│
└────┘    ┌→│Server │   └─────┘
┌────┐    │ └────┘
│Client-C│────┘
└────┘
 

◆ 主な用途としては、サーバー側の保護・セキュリティ向上の目的に為に、ユーザー認証機能を実装させたリバースプロキシサーバーを、サーバー側のフロントエンドに設置し、バックエンドのメインサーバーへの不特定多数のクライアントからのアクセスを制限したりするといった用途に用いられる。

◆ また、サーバー側の負荷分散を目的として、クライアントからのアクセス要求を処理する際に、軽い処理はバックエンドのサーバーに転送せずにフロントエンドのリバースプロキシサーバーで肩代わりして処理・応答してやることで、メインのバックエンドサーバーの負荷を軽減したりすることなどもできる。

◆ また、アクセス時にユーザーID&パスワード入力によるユーザー認証を必要とするセキュアなサーバーがバックエンドに複数有る場合に、そのユーザー認証の処理を、フロントエンドのリバースプロキシサーバーが一手に引き受ける事で、バックエンドのそれらのサーバーが個別にユーザーアカウント情報を管理する必要がなくなると同時に、クライアント側に対しても、フロントエンドのリバースプロキシサーバーに対して一回だけユーザー認証を行えば済んでしまう"シングルサインオン"の機能を提供できるなど利便性を高めることができる。

 
                    ┌────┐
                  ┌→│Server-A│
           ┌────┐ │ └────┘
┌───┐      │Reverse │─┘ ┌────┐
│Client│─────→│Proxy  │──→│Server-B│
└───┘      │Server │─┐ └────┘
           └────┘ │ ┌────┐
                  └→│Server-C│
                    └────┘