Мы используем nginx для загрузки запросов баланса в наше приложение. Мы обнаружили, что nginx переключается на другой вышестоящий сервер по истечении времени ожидания запросов (хорошо). Однако это делается для запросов PUT и POST, что может привести к нежелательным результатам (данные хранятся дважды). Можно ли настроить nginx так, чтобы он только повторял запросы GET по таймауту? Или есть другой способ решить проблему?
Наша конфигурация выглядит следующим образом:
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;
}
}
источник
использовать
proxy_method
директивуобратитесь к: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_method
источник
У меня та же проблема на моем сервере Tomcat. время ожидания прокси при возникновении длинного запроса. я решил свою проблему с помощью proxy_read_timeout. когда увеличение тайм-аута, то мой запрос никогда не истек и не возникло никаких проблем. время ожидания по умолчанию 60 с. ссылка
источник