ここでは主に Web サーバを分散させて、ロードバランサ(以下、LB)配下に WebClass のWebサーバを配置する場合について説明します。
前提
- WebClass はソースIPパーシステンス設定がない LB でも動くようになっています
- NFSによるストレージ共有と、DB によるセッション共有を行っています
- Shibboleth など連携機能によっては、追加設定が必要なケースがあります
- ここでは SSO 等の連携機能を無視し、WebClassの基本機能のみ動かす想定で説明します。
LB なしでの Web サーバ分散
簡易的な構成として、グローバルIPを持たせた Web サーバを複数台立てて分散させることも可能です。この場合は DNS RoundRobin により振り分けます。HTTPS 対応する場合は各サーバに同等の設定を行います。
振り分けは DNS の A レコード参照単位になりますので、だいたいクライアント端末の起動の単位で振り分け先が決まります。もしくは、あえてアクセス先サーバを決めたいときにはクライアント端末の hosts ファイルでIP指定する方法が使えます。
Web サーバのステータスに応じた振り分けのような高度なことはできませんが、扱いはわかりやすいです。
LB Transparent モード
次に、ロードバランサを透過モードで利用する場合の説明です。この場合もロードバランサのインターネット側 IP からWebサーバにパケットを通すだけですので、Web サーバとしてはあまり設定は変わりません。
通常は source ip persistence を有効にして利用してください。仮に同一セッションで対応するサーバがばらついても WebClass は動作します。ですが、同一セッションで対応するサーバがばらつく場合は、Apache 等のミドルウェア以下のレイヤーからアクセスを追跡するのが難しくなります。
LB Source NAT/Reverse Proxy モード、SSL オフロード
Web サーバへのアクセス元IPがロードバランサーのIPに置き換わるモードです。さらにSSL暗号化処理を Load Balancer で引き受ける SSL オフロードを組み合わせることもあります。
remote ip
この場合、X-Forwarded-For ヘッダーを付けていただかないと、WebClass ではアクセス元IPがわからなくなります。Apache のレベルでクライアントIPを X-Forwardef-For 参照する場合は追加設定を行います。
ssl offloading
またSSOオフロードを使用する場合は、クライアントがアクセスしてくるプロトコル:ポートと、Webサーバが直接待ち受けているプロトコル:ポートとが食い違います。SSLのみの運用であれば問題は起きにくいですが、特定区画のみHTTPアクセスを許すなど複雑な構成をしなければならない場合に、自動転送がうまくいかないことがあります。この場合はシステムオプションの GATEWAY_HOSTNAME、GATEWAY_PORT、GATEWAY_PROTOCOL を設定します。