J'ai deux serveurs Backend fonctionnant sur 192.168.0.101:8080 et 192.168.0.102:8080.
Nginx tourne sur 192.168.0.111:80, je veux forcer nginx à inverser le trafic dans un srever de backend spécifique par 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;
}
}
Je suis confus à propos de cette configuration. Est-ce que ça va marcher comme ça voulait dire? Est-ce que toutes les requêtes sauf 192.168.0.150 iront à backend-1 (192.168.0.102:8080)? et 192.168.0.250 dans le backend-2?
Question: Il ne s'agit pas d'une redirection basée sur des adresses IP. Pourquoi?
La configuration de travail:
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;
}
}