Hello! On Thu, Dec 26, 2019 at 02:20:37PM -0500, yanda.a wrote:
> Есть upstream с несколькими серверами. На этом upstream'е бывают очень > долгие запросы (это уже другая история). Если клиент разорвал соединение, в > логах будет $status = 499, но продолжаем ждать ответа от бекенда (опция > proxy_ignore_client_abort on), и если бекенд не отвалился по таймауту, то в > переменную $upstream_status пишется код его ответа. А вот если клиент > отключился от нас и бекенд отвалился по таймауту, то переменная > $upstream_status пустая, хотя, должна быть 504 по идее. > > Для сравнения, ситуация с 504 (не кусок из логов, а просто содержимое > переменных, но это взято из реальных логов, которых нет в сыром виде): > status: 504 > upstream_addr: backend-01-1,backend-01-2 > upstream_status: 504,504 > upstream_response_time: 90,90 > > Ситуация с 499 и таймаутом бекенда: > status: 499 > upstream_addr: backend-01-1 > upstream_status: - > upstream_response_time: 90 > > Ситуация с 499 и без таймаута бекенда: > status: 499 > upstream_addr: backend-01-2 > upstream_status: 200 > upstream_response_time: 0.038 > > > Собственно, вопрос, нормальное ли подобное поведение? Или это больше > смахивает на баг? Используется версия 1.16.1. При "proxy_ignore_client_abort on;" статуса 499 быть вообще не должно. Что показывает "nginx -V" и что в конфиге? -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru