原文転載元: http://tomyz0223.iteye.com/blog/1046992
nginx アップストリームは現在 5 つの割り当て方法をサポートしています
1. ポーリング (デフォルト)
各リクエストは時系列に割り当てられます。バックエンド サーバーがダウンした場合は、バックエンド サーバーを自動的に削除できます。
upstream backserver {
server 192.168.0.14;
server 192.168.0.15;
}
ログイン後にコピー
2. Weight は、ポーリング確率に比例し、バックエンドサーバーのパフォーマンスが不均一な場合に使用されます。 upstream backserver {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
ログイン後にコピー
3. ip_hash 各リクエストは、アクセスされた IP のハッシュ結果に従って割り当てられるため、各訪問者はバックエンド サーバーに固定的にアクセスできるようになり、セッションの問題を解決できます。 upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
ログイン後にコピー
4.公平(サードパーティ)は、バックエンドサーバーの応答時間に応じてリクエストを割り当て、応答時間の短いリクエストを優先します。 upstream backserver {
server server1;
server server2;
fair;
}
ログイン後にコピー
5. url_hash (サードパーティ) アクセスされた URL のハッシュ結果に従ってリクエストを分散し、各 URL が同じバックエンド サーバーに送られるようにします。バックエンド サーバーがキャッシュされている場合、より効果的です。負荷分散を使用する必要があるサーバーでは upstream backserver {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
ログイン後にコピー
max_fails を増やします。許可されるリクエストの失敗回数はデフォルトで 1 回で、最大回数を超えると、proxy_next_upstream モジュールで定義されたエラーが返されます。
上記では、さまざまな側面を含む NGinx の負荷分散戦略を紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。