ホームページ >バックエンド開発 >PHPチュートリアル >Nginxアップストリームの5つのウェイト割り当て方法を共有
1. ポーリング (デフォルト)
各リクエストは時系列に 1 つずつ異なるバックエンド サーバーに割り当てられ、バックエンド サーバーがダウンした場合は自動的に削除されます。
2. Weight
ポーリング確率を指定します。重みはアクセス率に比例し、バックエンドサーバーのパフォーマンスが不均一な場合に使用されます。
例:
次のようにコードをコピーします:
upstream backend {
server 192.168.0.14weight=10;
server 192.168.0.15weight=10;
}
3. 各リクエストは、次のハッシュ結果に従って割り当てられます。アクセスされた IP (次のように) 各訪問者はバックエンド サーバーに固定アクセスできるため、セッションの問題を解決できます。
例:
次のようにコードをコピーします:
upstream backend {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
4. 応答時間に従ってバックエンドサーバーのリクエストの割り当てでは、応答時間の短いリクエストが優先されます。
次のようにコードをコピーします:
アップストリーム バックエンド {
server server1.linuxany.com;
server server2.linuxany.com;
fair;
}
5. url_hash (サードパーティ)
のハッシュ結果に従ってリクエストを分散します。アクセスされた URL を同じバックエンド サーバーに送信します。バックエンド サーバーがキャッシュされている場合はより効果的です。
例: ハッシュ ステートメントを上流に追加します。重みなどの他のパラメーターは、使用されるハッシュ アルゴリズムです。
次のようにコードをコピーします。 :3128;
hash $request_uri;
hash_method crc32;
}
#負荷分散デバイスの IP とデバイスのステータスを定義します
アップストリーム バックエンド{
ip_hash;
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 Weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 Backup;
}
負荷分散を使用する必要があるサーバーに、
proxy_pass http://bakend/;
各デバイスのステータスを追加しますに設定されます:
1.down 以前のサーバーが当分の間負荷に参加しないことを示します。
2.weight デフォルトは 1 です。重みが大きいほど、負荷の重みが大きくなります。
3.max_fails: 許可されるリクエスト失敗の数のデフォルトは 1 です。最大数を超えると、proxy_next_upstream モジュールによって定義されたエラーが返されます。
4.fail_timeout: max_fails 失敗後の一時停止時間。
5.バックアップ: バックアップ以外の他のすべてのマシンがダウンしているかビジー状態の場合、バックアップ マシンを要求します。したがって、このマシンの圧力は最も少なくなります。
nginx は、未使用のサーバーで使用するために、負荷分散の複数のグループを同時にセットアップすることをサポートしています。
client_body_in_file_only を On に設定すると、クライアント投稿のデータをデバッグ用にファイルに記録できます。
記録ファイルのディレクトリを設定することで、最大 3 レベルのディレクトリを設定できます。リダイレクトするか、新しいプロキシの負荷分散を実行します。
上記は、Nginx アップストリームの 5 つの重み割り当て方法の共有を、関連する内容も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。