Wir verwenden nginx, um Ausgleichsanforderungen in unsere Anwendung zu laden. Wir haben festgestellt, dass nginx zu einem anderen Upstream-Server wechselt, wenn bei Anfragen eine Zeitüberschreitung auftritt (gut). Dies gilt jedoch für PUT- und POST-Anforderungen, die zu unerwünschten Ergebnissen führen können (Daten werden zweimal gespeichert). Ist es möglich, nginx so zu konfigurieren, dass GET-Anforderungen nur bei Zeitüberschreitung wiederholt werden? Oder gibt es einen anderen Weg, um das Problem zu lösen?
Unsere Konfiguration ist wie folgt:
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;
}
}
quelle
Verwendung
proxy_method
RichtlinieSiehe: http://nginx.org/de/docs/http/ngx_http_proxy_module.html#proxy_method
quelle
Ich habe das gleiche Problem in meinem Tomcat-Server. Proxy-Timeout bei langer Anforderung. Ich habe mein Problem mit proxy_read_timeout gelöst. Wenn das Timeout erhöht wird, ist meine Anfrage nie abgelaufen und es ist kein Problem aufgetreten. Standardzeitüberschreitung 60s. Referenz
quelle