Używamy nginx do ładowania żądań salda do naszej aplikacji. Odkryliśmy, że nginx przełącza się na inny serwer nadrzędny, gdy upłynie limit czasu żądań (dobrze). Jednak robi to w przypadku żądań PUT i POST, które mogą powodować niepożądane wyniki (dane przechowywane dwukrotnie). Czy można skonfigurować nginx, aby ponawiał żądania GET tylko po przekroczeniu limitu czasu? Czy istnieje inny sposób rozwiązania problemu?
Nasza konfiguracja jest następująca:
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;
}
}
źródło
użyj
proxy_method
dyrektywypatrz: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_method
źródło
Mam ten sam problem na moim serwerze tomcat. upłynął limit czasu serwera proxy, gdy wystąpi długie żądanie. Rozwiązałem problem, używając proxy_read_timeout. kiedy zwiększam limit czasu, moja prośba nigdy nie przekroczyła limitu czasu i nie wystąpił żaden problem. domyślny limit czasu 60s. odniesienie
źródło