Re: Пустая переменная $upstream status при 499
Maxim Dounin
mdounin на mdounin.ru
Вт Янв 14 12:47:16 UTC 2020
Hello!
On Mon, Jan 13, 2020 at 03:07:20PM -0500, yanda.a wrote:
> Maxim Dounin Wrote:
> -------------------------------------------------------
> > Hello!
> >
> > Где-то тут общение с бекендом завершено, однако ответ ещё не
> > полностью отправлен клиенту. В процессе отправки клиенте
> > закрывает HTTP/2 stream:
> Кстати да, я немного не досмотрел. В этом server {} не используется listen
> http2. Но, в логах наблюдается именно http/2.0 и в хроме видно h2 в консоли
> разработчика. Не могли бы вы подсказать, насколько это адекватно?
Параметры директивы listen - это параметры listen-сокета, и они
применяются ко всем соединениям, использующим данный listen-сокет.
Соответственно если у вас написано в одном сервере:
listen 443 ssl http2;
а в другом
listen 443;
то для соединений, принятых на порту 443 будет использоваться SSL
и HTTP/2.
Нюанс - сейчас одном сервере можно написать
listen 443 ssl http2;
а в другом
listen 443 ssl;
то есть без "http2", и будет работать так же, как если бы
параметров не было написано вообще - то есть будет использоваться
и SSL, и HTTP/2. Это, безусловно, вводит в заблуждение, и такое
мы, видимо, в ближайшем будущем просто запретим.
[...]
> Постараюсь описать ситуацию. Мы пытаемся выгружать эти логи в clickhouse для
> анализа latency и работы бекендов в целом, и сбора разнообразной статистики.
> Для этого на выходе у нас ожидается, что переменные (после парсинга это
> массивы в нашем случае) $upstream_addr, $upstream_response_time и
> $upstream_status имеют одну длину. Но, как показала практика, это не всегда
> так. В связи с этим ещё один, вероятно последний, вопрос. Есть ли
> возможность сделать это поведение более предсказуемым? Или проще добавлять
> недостающие элементы массива в процессе обработки (по сути угадывая, что там
> должно быть)?
Элемент массива там есть, в соответствующей позиции $upstream_status указан "-".
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru