Quantcast
Channel: Nginx Forum - Nginx Mailing List - Russian
Viewing all articles
Browse latest Browse all 3102

Составной upstream без перенаправления между серверами (2 replies)

$
0
0
Добрый день,

Имеем секцию апстрим из N серверов:
upstream foo {
server a;
server b;
...
}

Для того, чтобы клиент ни в коем случае не заметил задержек с ответом, мы возвращаем предопредленный ответ в случае задержки на сервере:

location = /foo {
fastcgi_pass
fastcgi_keep_conn on;
include fastcgi-params.conf;

fastcgi_read_timeout 75ms;
fastcgi_intercept_errors on;
error_page 500 501 502 503 504 = /foo_failover;
}

location = /foo_failover {
root /var/www;
}

Проблема в том, что при задержке с ответом с одного из серверов nginx перекидывает запрос на другой сервер в апстриме, потом возможно на третий, видимо ожидая на каждом из серверов не дольше заданных 75 мс, но в сумме набирается недопустимо длительное время, так как в процессе таких ожиданий и перекидываний на клиенте срабатывает уже свой таймаут, чего как раз хочется избежать.

Есть ли более элегантный способ сохранить балансировку нагрузки, но запретить перенаправление, кроме как заводить N апстримов, каждый из одного сервера, прописывать им отдельно fastcgi_read_timeout и error_page, а из локейшена /foo, скажем, проксировать запрос на эти локейшены?

Спасибо!

Viewing all articles
Browse latest Browse all 3102

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>