ロードバランサーは、個人ではとても買えません。
nginxならば性能は劣りますが、十分に実運用可能と思います。
有名所のロードバランサーは下記。
「F5 BIG-IP 1600」:299万円
「NetScaler 7000」:306万円
NetScalerは、GoogleやYahoo、Amazon、Mixiでも使用されています。
NetScalerの構築は、視覚的に簡単で便利なんですけどね。
### これが一番単純な書き方
### 2つのサーバに対してラウンドロビンで振り分けられる。
http { upstream backend { server 127.0.0.1:80; server 127.0.0.2:80; } server { listen 80; server_name sample.com; location / { proxy_pass http://backend; } } }
### upstream項目に、少しオプションを使います。
### パターン1
# 以下の割合で、バランシングされるよう設定します。
# 127.0.0.1に80%
# 127.0.0.2に20%
# デフォルト:weight=1
upstream backend { server 127.0.0.1:80 weight=4; server 127.0.0.2:80; }
### パターン2
# 同じIPアドレスから接続された場合
# 常に同じサーバに転送する
# そのサーバが動作不能の場合は、別のサーバに転送する
upstream backend { ip_hash; server 127.0.0.1:80; server 127.0.0.2:80; }
### パターン3
# fail_timeoutの期間内にmax_failsの回数だけ試行します。
# デフォルト:max_fails=1 fail_timeout=10
# backupは、正常時にはバランシングされませんが
# backup以外のサーバが動作不能の場合に、転送されます。
upstream backend { server 127.0.0.1:80 max_fails=3 fail_timeout=30; server 127.0.0.2:80 max_fails=3 fail_timeout=30; server 127.0.0.3:80 backup; }
### パターン4
#
# downを設定すると、そのサーバは除外されます
#
upstream backend { server 127.0.0.1:80 down; server 127.0.0.2:80; }
ここが参考になります。
http://mickeyben.com/2009/12/30/using-nginx-as-a-load-balancer.html
【小言】
OSSのロードバランサーには、LVSというのもあります。
簡単に、L4ロードバランサーを構築できるものですが
サーバ台数をいかに減らしてインフラを整えるかと考えると
どうせならnginxとかapacheも、フロントとしても動いてもらいたいもんです。
L7ロードバランサーの設定も手軽です。
0 件のコメント:
コメントを投稿