nginxを使用して、アプリケーションへの要求を負荷分散します。要求がタイムアウトすると、nginxは別のアップストリームサーバーに切り替えることがわかりました(良好)。ただし、これは、望ましくない結果(データが2回保存される)を引き起こす可能性のあるPUTおよびPOST要求に対して行います。タイムアウト時にGETリクエストのみを再試行するようにnginxを設定することは可能ですか?または、問題を解決する別の方法はありますか?
構成は次のとおりです。
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;
}
}