Nous utilisons nginx pour charger les demandes d'équilibrage dans notre application. Nous avons constaté que nginx bascule vers un autre serveur en amont lorsque les demandes expirent (bon). Cependant, il le fait pour les requêtes PUT et POST qui peuvent entraîner des résultats indésirables (données stockées deux fois). Est-il possible de configurer nginx pour n'essayer à nouveau que les requêtes GET sur timeout? Ou existe-t-il une autre façon de résoudre le problème?
Notre configuration est la suivante:
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;
}
}
la source
proxy_method
directive d' utilisationvoir: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_method
la source
J'ai le même problème sur mon serveur tomcat. délai d'expiration du proxy lorsque la demande est longue. j'ai résolu mon problème en utilisant proxy_read_timeout. lorsque l'augmentation du délai d'attente alors ma demande n'a jamais expiré et aucun problème ne s'est produit. délai d'expiration par défaut des années 60. référence
la source