L4スイッチとL7スイッチ
ロードバランサ(L4スイッチ)
リバースプロキシ(L7スイッチ)
L7スイッチは、アプリケーション層の中身まで解析して分散先を決定する。
L7スイッチは転送するだけでなく仲介する立場として動作し、TCPコネクションはクライアント・L7スイッチ間とL7スイッチ・転送先サーバ間の2つで張られる。
HTTPリクエストに応じた制御
リバースプロキシは、クライアントからの要求と転送先サーバを仲介するので、その間に様々な前後処理を挟むことができる。 (ex)URLの書き換え。
アプリケーションサーバのメモリ使用効率の向上
URLの書き換えによって、静的コンテンツを返却するWebサーバと動的コンテンツを返却するアプリケーションサーバを分ける。 そうすることで、アプリケーションサーバのメモリ消費量を抑えることができる。
HTTPのKeep-Alive
クライアント - リバースプロキシ間のKeep-Alive
TCPコネクションを新規に作成するには負荷がかかるため、一度作成したら接続を一定時間維持するKeep-Aliveの仕組みが提供されている。
リバースプロキシをアプリケーションサーバの前に配置する場合には、クライアントとリバースプロキシ間でKeep-Aliveが有効となる。
リバースプロキシ - アプリケーションサーバ間のKeep-Alive
「[24時間365日] サーバ/インフラを支える技術」本によると、リバースプロキシ - アプリケーションサーバではKeep-Aliveはオフにするのを薦めている。アプリケーションサーバの前提がマルチプロセス型だから、プロセスを長時間保持してしまうコストの方がTCPコネクションを新規に張るコストより大きいという前提なのかもしれない。
Javaの場合は、マルチスレッドのアプリケーションサーバなので、スレッドを専有するのはそれほど高コストではない。 リバースプロキシ - アプリケーションサーバ間のKeep-Aliveの仕組みが用意されているものもある。
Apache - Tomcat間では、mod_jkというApacheのモジュールが提供されており、こちらではこの2者間のKeep-Aliveをサポートしている。ただ、mod_jkではなく単にmod_proxyでも同じことはできる。
参考
[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)
- 作者: 安井真伸,横川和哉,ひろせまさあき,伊藤直也,田中慎司,勝見祐己
- 出版社/メーカー: 技術評論社
- 発売日: 2008/08/07
- メディア: 単行本(ソフトカバー)
- 購入: 133人 クリック: 2,270回
- この商品を含むブログ (289件) を見る