ロード バランシングの原則
クライアントはリクエストをリバース プロキシに送信し、リバース プロキシは次に従ってリクエストを転送します。ターゲット サーバー (これらのサーバーはすべて同じアプリケーションを実行しています) に特定のロード メカニズムを適用し、取得したコンテンツをクライアントに返します。その間、構成に応じてプロキシ リクエストが異なるサーバーに送信される場合があります。 (推奨される学習: nginx チュートリアル)
負荷分散構成
テスト ケース:
以下に示すように、同じアプリケーションが 2 つのサーバー (192.168.1.103、192.168.1.102) にデプロイされ、Web サイトは次のようにポート 8080 経由でアクセスされます。 nginx リバース プロキシは 1.103 にインストールされており、192.168.1.103 のポート 80 を介して 2 つのサイトにアクセスしたいと考えています
nginx 設定ファイルを編集します (例: /usr/local/) ngnix/conf/nginx.conf) で、次のように http ノードを見つけ、背景色のコンテンツを追加します
##http://192.168.1.xx:8080/webautotest/xxxxxxx
設定ファイルを再読み込みします
http { upstream myapp1 { server 192.168.1.103:8080; server 192.168.1.104:8080; } ……略 server { listen 80; server_name localhost; ……略 location /webautotest/ { proxy_buffering off; proxy_pass http://myapp1; } } }#テスト用URLにアクセス##以下のように、同じページにアクセスして、異なるサーバーのページを表示します
##説明:
負荷分散メソッドnginx は、次の 3 つの負荷分散メカニズム、方法:
ラウンドロビン — リクエストはラウンドロビン方式でアプリケーション サーバーに分散されます。 least-connected — 次のリクエストは、アクティブな接続数が最も少ないサーバーに割り当てられます。
ip-hash — ハッシュ関数を使用して、次のリクエストの送信先を決定します。クライアントの IP アドレス 配布先のサーバー。
デフォルトの負荷分散構成[root@localhost nginx-1.10.0]# /usr/local/ngnix/sbin/nginx -s reload
上の例では、srv1 ~ srv3 でそれぞれ 3 つのアプリケーション インスタンスが実行されています。指定した負荷分散方式が表示されない場合、デフォルトはラウンドロビンとなります。すべてのリクエストはプロキシによって myapp1 サーバー グループに転送され、リクエストは負荷分散方法に従って分散されます。
以上がnginxの負荷分散原理を口頭で説明する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。