Stiamo utilizzando nginx per caricare le richieste di bilanciamento nella nostra applicazione. Abbiamo scoperto che nginx passa a un altro server upstream quando si richiede il timeout (buono). Tuttavia lo fa per le richieste PUT e POST che possono causare risultati indesiderati (dati memorizzati due volte). È possibile configurare nginx per riprovare le richieste GET solo in timeout? O c'è un altro modo per risolvere il problema?
La nostra configurazione è la seguente:
upstream mash {
ip_hash;
server 127.0.0.1:8081;
server 192.168.0.11:8081;
}
server {
...
location / {
proxy_pass http://mash/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}