次のような nginx 設定があります:
upstream cluster_web {
ip_hash;
server 192.168.115.82 weight=3;
server 192.168.115.92 weight=2;
server 192.168.115.100 weight=2;
server 192.168.115.95 weight=3;
server 192.168.115.103 weight=1;
}
server {
location /app1/ {
proxy_pass http://192.168.115.92;
}
location / {
proxy_pass http://cluster_web;
}
}
要点は、ユーザーが / ロケーションにアクセスした後、ロケーション ルール /app1/ で定義されたサーバーにアクセスできないことです。どうやら、nginx は以前のリクエストからのアップストリーム設定で ip_hash サーバーを使用しているようです。何か設定が足りないのでしょうか? これは正しいですか? ちなみに、リバース プロキシ サーバーが 2 つあり、1 つはインターネット上、もう 1 つは LAN ユーザー用です。
よろしくお願いします!
答え1
それはバグではありませんでした。
proxy_pass ディレクティブの後に break; を使用する必要がありました。