nginxの構成や詳細なロードバランシングアルゴリズム

1.簡単な負荷分散

ポーリングに基づいて、2つのプロキシ、ロードバランシングアルゴリズムを実行するサーバーのnginxのWebサーバー場合は、シャットダウン時に一台のマシンのWebプログラムは、Webアクセスを作成することはできません、そして、その後、nginxのサーバーは、この要求を配布したり、精製してWebサーバにアクセスすることはできません、ここでは、接続の応答時間が長すぎる、それはクライアントのページになります場合は、私たちがまだ起きてからこれを避ける方法をここでは、ユーザーエクスペリエンスヒットの割引への応答を待っていました。私は次の問題を示すために、ここでは写真付きです。
ここに画像を挿入説明
このような状況がWEB2負荷分散を発生した場合は、nginxのは、最初はweb1要求を行くだろうが、WEB2に要求を配布していきます私たちの応答時間が経過するまでの悪い構成されたのnginxの場合には、WEB2はその後、応答を待つ、リクエストが再なりますユーザーの待ち時間が長くなる場合の応答時間は、長すぎるweb1とし、配布しました。

2.準備

nginxのは、リバースプロキシサーバーを実行するために3台の仮想マシン、1が装備され、他の2つは、実サーバ、シミュレートされた負荷分散を行います。

192.168.13.129       #反向代理服务器
192.168.13.133       #真实服务器
192.168.13.139       #真实服务器

3. 3サーバー構成

我们在反向代理服务器上(192.168.13.139)进行如下配置:
[root@real-server ~]# vim /etc/nginx/conf.d/default.conf
清空并添加以下内容
upstream test_server {
      server 192.168.62.157:8080;
      server 192.168.62.158:8080;
    }
 server {
        listen 80;
        server_name localhost;
        location / {
           proxy_pass  http://test_server;
        }
}
[root@server ~]# nginx -t
[root@server ~]# nginx -s reload
第一台真实服务器配置(192.168.13.133):
[root@real-server ~]# vim /etc/nginx/conf.d/default.conf
清空并添加以下内容
server {
        listen 80;
        server_name localhost;
        location / {
                root    /usr/share/nginx/html/login;
                index   index.html index.html;
                }
}
[root@real-server ~]# nginx -t
[root@real-server ~]# nginx -s reload
#创建目录和文件并写入测试数据
[root@real-server ~]# mkdir -p /usr/share/nginx/html/login
[root@real-server ~]# echo "this is first real-server" > /usr/share/nginx/html/login/index.html
第二台真实服务器配置(192.168.13.139):
[root@real-server ~]# vim /etc/nginx/conf.d/default.conf
清空并添加以下内容
server {
        listen 80;
        server_name localhost;
        location / {
                root    /usr/share/nginx/html/login;
                index   index.html index.html;
                }
}
[root@real-server ~]# nginx -t
[root@real-server ~]# nginx -s reload
#创建目录和文件并写入测试数据
[root@real-server ~]# mkdir -p /usr/share/nginx/html/login
[root@real-server ~]# echo "this is second real-server" > /usr/share/nginx/html/login/index.html

テスト:オープンページとリバースプロキシサーバーのIPアドレスを入力します。http://192.168.13.129/
ここに画像を挿入説明
リフレッシュ
ここに画像を挿入説明

4.ロードバランシングアルゴリズム

上流は4負荷分散スケジューリングアルゴリズムをサポートしています。

A、 轮询(默认)個々に異なる時間順のバックエンドサーバーに割り当てられた各要求。

B、 ip_hashアクセスに固定IPクライアントで、バックエンドサーバーをIPプレスハッシュ結果にアクセスするための各要求を割り当てます。同じIPからの要求が静止マシン上でヒットしていることを保証しますが、セッションの問題を解決することができます。

C、url_hash:URLアクセスは、ハッシュ割当要求の結果に応じて、各URLは、同じバックエンドサーバーに指示しました。キャッシュ時間効率のためのバックエンドサーバー。

Dは、fair2つ以上のインテリジェントなロードバランシングアルゴリズムよりもあります。このアルゴリズムは、バックエンドサーバーの応答時間への割り当て要求、短い応答時間優先配分に基づいているページサイズと負荷期間インテリジェントロードバランシングに基づくことができます。Nginx自体はサポートされていませんfair。このスケジューリングアルゴリズムを使用して、必要であれば、あなたはnginxのをダウンロードする必要があり、upstream_fairモジュールを。

構成例
1、ホットスタンバイ:2台のサーバー、事故が発生した最初のサーバーを持っている場合は、サービスを提供することを第2のサーバを有効にすることでした。
ここに画像を挿入説明

upstream test_server {
      server 192.168.13.133:80;
      server 192.168.13.139:80 backup;
    }

再度、アクセス方向プロキシIP
ここに画像を挿入説明
2.ポーリング:nginxのデフォルトのポーリングその重量が1にデフォルトで、アクセスサーバの順序は、再び第1のサーバ、第1、第2、及び第2サイクルである(なぜならデフォルトのポーリングは、任意のパラメータを追加する必要がない)
3、重み付けラウンドロビン:構成された分散サーバの異なる数の重量とサイズに応じては、別のを要求します。設定されていない場合、デフォルトは1です。
ここに画像を挿入説明

upstream test_server {
      server 192.168.13.133:80 weight=1;
      server 192.168.13.139:80 weight=3;
    }

4、ip_hash:同じサーバnginxのは、同じIPクライアント要求を行います。

upstream test_server {
      server 192.168.13.133:80;
      server 192.168.13.139:80;
      ip_hash;
    }

5、nginxのロードバランシングコンフィギュレーション状態パラメータ

  • ダウンは、それが現在のサーバー当面は、負荷分散に参加しないことを示します。
  • バックアップ、バックアップ・マシンを禁じます。他のすべての非バックアップ・マシンの故障や忙しいときには、バックアップ・マシンを要求し、その最軽量機の圧力はありません。
  • max_failsは、失敗した要求の数が可能、デフォルトは1です。数が最大値を超えた場合、エラーが返されます。
  • fail_timeout、max_failsの失敗の後、秒のサービス時間のうち単位。max_failsはfail_timeoutで使用することができます。
upstream test_server {
      server 192.168.13.133:80 weight=2 max_fails=2 fail_timeout=2; 
      #加权轮询的权值是2,允许请求失败两次,然后暂停服务两秒
      server 192.168.13.139:80 weight=3 max_fails=3 fail_timeout=3;
      #加权轮询的权值是3,允许请求失败三次,然后暂停服务三秒
    }

公開された16元の記事 ウォン称賛34 ビュー5212

おすすめ

転載: blog.csdn.net/baidu_38803985/article/details/104827395