負荷分散は、サーバーが大量のリクエストを処理するのに役立ちます。
通常どおり、クライアントからのリクエストは単一の Web サーバーに直接送信されるため、サーバーの輻輳が発生し、処理速度が低下する可能性があります。
負荷分散は、他の Web サーバーを制御する必要性に応じたアルゴリズムに基づいて行われます。
負荷分散アルゴリズムには 3 種類あります。
- Round robin : この方法では、サーバーを順番に選択します。 ロード バランサーは、最初のリクエストに対してリスト内の最初のサーバーを選択し、次にリスト内の次のサーバーに順番に移動し、リストがなくなると最初からやり直します。
- Least connection : 負荷分散システムは接続数が最も少ないサーバーを選択するため、アクセス速度が遅い場合はこの方法をお勧めします。
- Source : ソース アルゴリズムを使用すると、ロード バランサーは、訪問者の IP などの一連のリクエストの発信元 IP に基づいてサーバーを選択します。 この方法により、特定のユーザーが常に同じサーバーに接続するようになります。
ロード バランサには 2 つのタイプがあります:
- ハードウェア:リクエストの制御にハードウェアを使用します。Foundry、Nortel(Alteon)またはCisco CSS(Arrowpoint)、Cisco Local Directorなどのデバイスがあります
- ソフトウェア:リクエストの制御にソフトウェアを使用します。Nginx、Haproxy、Apacheなどのソフトウェアがあります。
負荷分散は4層と7層の2モデルを用意。
4 層ソフト ロード バランシングをインストールして Haproxy を使用する方法は次のとおりです。
- Load Balancer
OS: CentOS 7 + haproxy
Private IP: 192.168.1.129:80 - Web Server 1
OS: CentOS 7 + Nginx
Private IP: 192.168.129:8080 - Web Server 2
OS: CentOS 6+ Nginx
Private IP: 192.168.128:80
ロードバランサーとWebサーバー1では、ポート80と8080を開いてください。Webサーバー2ではポート80を開いてください。Webサーバー1には ‘a’ というコンテンツがあり、Webサーバー2には ‘b’ というコンテンツがあります。
ロードバランサーにHaproxyをインストール
sudo yum install haproxy
その後、ファイルを編集してください。 /etc/haproxy/haproxy.cfg. このファイルのバックアップを作成することをお勧めします。
global
daemon
maxconn 256
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
stats enable
stats hide-version
stats refresh 30s
stats show-node
stats auth admin:123456
stats uri /haproxy?stats
frontend http-in
bind *:80
default_backend servers
backend servers
balance roundrobin
server webserver1 192.168.1.128:80 check
server webserver2 192.168.1.129:8080 check
コマンドを実行する sudo service haproxy start
URL 192.168.1.129にアクセスすると、交互に ‘a’ と ‘b’ のコンテンツが表示されます。
アクセスする Web サーバーに関する情報を確認するには 192.168.1.129/haproxy?stats アカウント admin/123456 で