まず、効果を出す
(1)アドレスhttp://サーバーIP / bs-managerをブラウザーのアドレスバーに入力し、負荷分散効果、平均8081および8082ポート;
2. 準備
(1)2つのTomcatサーバーを準備する
- 8081と8082の2つのTomcatサーバーを準備する
- 上記のリバースプロキシは、2番目のインスタンスで正常に構成されています。ただし、次のように何かを追加する必要があります。
(2)場所を変更する
- 2つのtomcatのwebappsディレクトリで、eduという名前のフォルダーを作成し、テスト用にeduフォルダーにページa.htmlを作成します。
- 2番目の例では、8082にeduフォルダーがあるため、8081フォルダーの下にのみ作成できます。
次に、vodファイルの下でコマンドを使用します。
cp a.html ../edu/
完了するには、コマンドを表示します
cd ../edu/ # 进入到 edu 目录下
cat a.html #查看内容
3、nginx構成ファイルの負荷分散構成
- 最初の例の構成を変更
構成コード:
upstream myserver {
ip_hash; //按照IP地址hash轮询
server 208.208.128.122:8081;
server 208.208.128.122:8082;
}
server {
listen 80;
server_name 208.208.128.122;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
proxy_pass http://myserver;
#proxy_pass http://127.0.0.1:8081;
index index.html index.htm;
}
第四に、最終テスト
テストURL: http://サーバーのIPアドレス/ edu / a.html
5番目のNginx配信サーバー戦略
インターネット情報の爆発的な増加に伴い、ロードバランスはそれほど馴染みのないトピックではなくなりました。名前が示すように、ロードバランシングは負荷をさまざまなサービスユニットに分散することであり、サービスの可用性を確保するだけでなく、応答が十分に高速であることも保証します、ユーザーに良い体験を提供するため。アクセスとデータトラフィックの急速な増加により、さまざまな負荷分散製品が生み出されました。多くの専門的な負荷分散ハードウェアは優れた機能を提供しますが、高価です。そのため、負荷分散ソフトウェアは非常に人気があります。nginxはその1つです。 1つは、Nginx、LVS、Haproxy、およびLinuxの下にロードバランシングサービスを提供するその他のサービスがあり、Nginxはいくつかの配布方法(戦略)を提供します。
- ポーリング(デフォルト)各要求は、時系列順に1つずつ異なるバックエンドサーバーに割り当てられます。バックエンドサーバーがダウンしている場合は、自動的に排除できます。この方法はシンプルで低コストですが。しかし、欠点は、信頼性が低く、負荷分散が不均衡であることです。イメージサーバークラスターと純粋な静的ページサーバークラスターに適用できます。
-
重量(重量)。重みは重みを表します。デフォルトは1です。重みが高いほど、より多くのクライアントが割り当てられます。指定されたポーリング確率である重みは、バックエンドサーバーの不均一なパフォーマンスに使用されるアクセス率に比例します。以下に示すように、8082のアクセス率は8081の2倍です。
upstream myserver {
server 208.208.128.122:8081 weight=5; # 在这儿
server 208.208.128.122:8082 weight=10;
}
server {
listen 80;
server_name 208.208.128.122;
location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}
-
ip_hash(アクセスIP)。 ip_hash各リクエストはipへのアクセスのハッシュ結果に従って割り当てられるため、各ビジターはバックエンドサーバーに固定的にアクセスします。セッションの問題を解決できます。
upstream myserver {
ip_hash; // 在这儿
server 208.208.128.122:8081 ;
server 208.208.128.122:8082 ;
}
server {
listen 80;
server_name 208.208.128.122;
location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}
-
フェア(サードパーティ)。公平(サードパーティ)、バックエンドサーバーの応答時間に応じて要求を分散し、短い応答時間を優先します。重量配分戦略に似ています。
upstream myserver {
server 208.208.128.122:8081 ;
server 208.208.128.122:8082 ;
fair; # 在这儿
}
server {
listen 80;
server_name 208.208.128.122;
location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}
- url_hash(サードパーティ)は、URLへのアクセスのハッシュ結果に従って要求を分散します。これにより、各URLは同じバックエンドサーバーに送られます。これは、バックエンドサーバーがキャッシュされている場合により効果的です。
- 注:上流にハッシュステートメントを追加します。サーバーステートメントは、重みなどの他のパラメーターを書き込むことができません。hash_methodは、使用されるハッシュアルゴリズムです。
upstream resinserver{
server 10.0.0.10:7777;
server 10.0.0.11:8888;
hash $request_uri;
hash_method crc32;
}
アップストリームは、各デバイスのステータス値を設定することもできます。これらのステータス値の意味は次のとおりです。
- down:注文前のサーバーが一時的にロードに参加しないことを示します。
- 重量:デフォルトは1です。重量が大きいほど、負荷の重量が大きくなります。
- max_fails:失敗したリクエストのデフォルト数は1です。最大数を超えると、proxy_next_upstreamモジュールで定義されたエラーが返されます。
- fail_timeout:max_failsが失敗した後に一時停止する時間。
- バックアップ:他のすべての非バックアップマシンがダウンまたはビジーの場合は、バックアップマシンを要求します。したがって、このマシンの圧力は最小になります。
upstream bakend{ #定义负载均衡设备的Ip及设备状态
ip_hash;
server 10.0.0.11:9090 down;
server 10.0.0.11:8080 weight=2 max_fails=1 fail_timeout=1s;
server 10.0.0.11:6060 max_fails=1 fail_timeout=1s;
server 10.0.0.11:7070 backup;
}