В таком случае proxy_read_timeout нужно устанавливать по максимальному времени выполнения задачи на бекенде?
Дело в том, что мы столкнулись с проблемой, когда один из бекендов принимал соединение, но не выполнял задачу (или выполнял ее неверно) и никогда не отвечал обратно, в итоге часть задач висела и ждала пока эти соединения не завершатся по одному из таймаутов. Небольшой процент запросов требует большого (от 5 до 10 минут) времени выполнения задачи на бекенде, поэтому, выставляя proxy_read_timeout по минимуму, чтобы отсеять соединения с нерабочим бекендом, мы потеряем часть легитимных соединений. Что Вы можете посоветовать, как отсеять выполняющиеся на бекенде соединения от подвисших? Есть ли у nginx на этот случай какой-то встроенный механизм? Например, если работающий бекенд будет посылать какие-то промежуточные ответы, чтобы nginx знал, что соединение живое и работает.