負荷分散 (LOAD BALANCING) で処理速度を最適化する (4レイヤー)

負荷分散は、サーバーが大量のリクエストを処理するのに役立ちます。

通常どおり、クライアントからのリクエストは単一の Web サーバーに直接送信されるため、サーバーの輻輳が発生し、処理速度が低下する可能性があります。

負荷分散は、他の Web サーバーを制御する必要性に応じたアルゴリズムに基づいて行われます。

負荷分散には3種類のアルゴリズムがあります:

  • ラウンドロビン: この方法では、サーバーを順番に選択します。負荷分散装置は最初のリクエストをリストの最初のサーバーに送り、次のリクエストを次のサーバーに送り、リストの終わりに達したら最初に戻ります。
  • 最小接続 : 負荷分散装置は接続数が最も少ないサーバーを選びます。この方法はアクセス速度が遅くなる場合に推奨されます。
  • ソース : ソースアルゴリズムでは、リクエストの元のIPアドレスなどを基にサーバーを選びます。この方法は、特定のユーザーが常に同じサーバーに接続することを保証します。

ロード バランサには 2 つのタイプがあります:

  • ハードウェア:リクエストの制御にハードウェアを使用します。Foundry、Nortel(Alteon)またはCisco CSS(Arrowpoint)、Cisco Local Directorなどのデバイスがあります
  • ソフトウェア:リクエストの制御にソフトウェアを使用します。Nginx、Haproxy、Apacheなどのソフトウェアがあります。

以下は、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」でログインします。

Bài viết liên quan