192.168.0.101:8080と192.168.0.102:8080で2つのバックエンドサーバーを実行しています。
192.168.0.111:80でnginxを実行していますが、nginxにIPによる特定のバックエンドサーバーのトラフィックを強制的に反転させたいです。
geo $upstream {
192.168.0.150 backend-1;
192.168.0.250 backend-2;
default backend-1;
}
upstream backend-1 {
ip_hash;
server 192.168.0.101:8080;
}
upstream backend-2 {
ip_hash;
server 192.168.0.102:8080;
}
server {
listen 80;
location / {
proxy_pass http://$upstream;
proxy_redirect off;
proxy_set_header Host $Host;
proxy_set_header X-Forwarded-Host $Host;
proxy_set_header X-Forwarded-Server $Host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
この構成について混乱しています。それは意図したとおりに機能するのでしょうか? 192.168.0.150以外のすべてのリクエストはbackend-1(192.168.0.102:8080)に送られますか?バックエンド2の192.168.0.250?
質問:IPアドレスに基づいてリダイレクトしていません。なぜですか?
作業設定:
geo $upstream {
default backend-1;
192.168.0.150 backend-1;
192.168.0.250 backend-2;
}
upstream backend-1 {
server 192.168.0.101:8080;
}
upstream backend-2 {
server 192.168.0.102:8080;
}
server {
listen 80;
location / {
proxy_pass http://$upstream;
proxy_redirect off;
proxy_set_header Host $Host;
proxy_set_header X-Forwarded-Host $Host;
proxy_set_header X-Forwarded-Server $Host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}