負荷分散を自分で実装したいのか、
負荷分散システムを構築したいのかで随分変わるかと思いますが、
仮想分散システムの構築だと
LVSの場合
nginx
等のロードバランサーとして動くアプリケーションをインストールして設定するというのが手軽ですね。
この場合、仮想環境で必要な台数のサーバとネットワークを用意すればよりわかりやすいと思います。
もっと簡単なのは、
AWSでのELBやその他クラウド環境でサービスとして提供されているロードバランサー使用してクラウド上で構築するという手段があります。
実装してみたいということだと、
何らかの方法で分散先を決定して、分散先から結果を取得して、クライアントに返すというだけなので
phpであれば極端な話、
以下の様な実装で「このスクリプトと同じパスを持つバランシング先のHTMLに関しては」バランシング出来ます。
PHP
1//単純な負荷分散の場合
2//転送先のホストのリスト
3$host_list = array("http://host-a","http://host-b");
4
5//ランダムに負荷分散
6$transfer_key = rand(0,1);
7$transfer_host = $host_list[$transfer_key];
8
9//バランサーが受け取ったリクエストパスと分散先ホストを結合してリクエスト先URLを取得
10$transfer_url = $transfer_host.$_SERVER['REQUEST_URI']
11
12//転送先の出力をそのまま出力
13echo file_get_contents($transfer_url);
もちろんこれだけだと使い物にならないので、
・ヘッダも正確に出力する
・mod_rewriteなどを使って全てのリクエストをindex.phpに集め、パスをパラメータとして持たせてそのパラメータを使って分散先からデータを取得する
・分散先の負荷状態や生きているかどうかを別途チェックしておき、その結果で重みづけをする
など、色々工夫出来ます。
が、工夫をすればするほどバランサー側が重くなっていったりバグが出たりするので、
実用レベルに持っていくのは非常に困難だったり、
既存のロードバランサーを使った方が確実/楽という結果になりがちだとは思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。