Welcome! Log In Create A New Profile

Advanced

Пустая переменная $upstream_status при 499

December 26, 2019 02:20PM
Добрый день!

Есть 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.

Заранее спасибо!
Subject Author Posted

Пустая переменная $upstream_status при 499

yanda.a December 26, 2019 02:20PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 101
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready