以下の2種類が存在するのは、ロードバランサがアプリケーションサーバーのようにサービスを提供する特徴を持つためである。
[補講]クライアントとスイッチ間、スイッチとサーバー間の通信に分割して考えるとわかりやすい。 ◇
[例]キャッシュサーバーの負荷分散を行う場合、HTTP(TCP/80番)をフィルタルールに設定することで、クライアントのWebブラウザ側で何らかの設定をすることなく、HTTPのパケットのみをリダイレクトできる。
この手法は、FWやSSLアクセラレーターのロードバラインシングでも多用される。 ◇
ロードバランサの割り振りアルゴリズムとして、負荷分散アルゴリズムが使用される。
[例]HTTPヘッダのURLに".cgi"が含まれるのみ、CGIサーバーに振り分ける。 ◇
[例]HTTPヘッダ内のUser-Agentでサーバーを振り分ける。
パーシステンスの種類 | 内容 |
ソースIPアドレス | クライアントIPアドレスを基にリクエストを割り振るWebサーバーを決定する。 例:クライアントIPアドレスの末尾が奇数なら、Webサーバー#1にするなど。 |
Cookie | HTTPヘッダ内に、どのWebサーバーにアクセスしたかという情報を保持する。 |
URL | URLコンテキスト内にどのWebサーバーにアクセスしたか、情報を保持する。 |
[補講]HTTPSの通信(接続がSSL)の場合、アプリケーションデータは暗号化されるためCookieを用いる方法は使えない。
なお、送信元IPアドレス、SSL Session-IDをセッション管理に用いることはできる。◇
[補講]UDPポートの監視は困難である。 ◇
[補講]ServletやJSPのHTTPSession、EJBのStateful Session Beanというセッション情報がある。
これらの情報はAPサーバーのJVM上に格納されている。リクエストの分散、セッション情報の冗長化の2つの機能により、APサーバーは冗長化される。また、APサーバー内の冗長化も、この2つの機能により実現される。 ◇