Welcome! Log In Create A New Profile

Advanced

Re: How to write $upstream_trailer_{name} into access.log

Gena Makhomed
May 25, 2021 04:08AM
On 24.05.2021 4:19, Maxim Dounin wrote:

>> add_trailer X-Response-Time $upstream_response_time always;
>> add_trailer X-Cache-Status $upstream_cache_status always;

> Чтение трейлеров от бэкендов сейчас поддерживается только для
> gRPC-бэкендов. Если хочется, чтобы работало и для HTTP/1.1
> с chunked - присылайте патчи.

У trailers есть один существенный недостаток - они отсутствуют
в ответах, состоящих из одних только заголовков, например,
в ответах на HEAD-запросы. Поэтому trailers мне не подходят.

Если использовать вариант:

add_header X-Cache-Status $upstream_cache_status always;
add_header X-Response-Time $upstream_header_time always;

$upstream_header_time примерно равно $upstream_response_time,
для большинства обычных сайтов, кроме того - эти два заголовка
будуть присутствовать в ответах бэкенда всегда, даже для ответов
на HEAD-запросы. Это есть примерно то, чего и хотелось получить.

Остается только одна небольшая проблема - если в server или в location
присутствуют свои директивы add_header, то там надо будет продублировать
вручную эти две директивы add_header с уровня http.


Можно ли добавить в nginx директиву, например, force_add_header,
которая будет почти во всем аналогична директиве add_header,
но только директива add_header не будет отменять действие
директивы force_add_header, а директива force_add_header
не будет отменять действие директивы add_header.

В случае коллизии - одно и то же имя заголовка задается
и директивой force_add_header и директивой add_header
в каком-то location - тогда пишется warning во время
тестирования конфигурации и действует только директива
force_add_header, два заголовка с одним и тем же именем
не добавляются в ответ сервера.

Тогда можно было бы всего один раз на уровне http прописать

force_add_header X-Cache-Status $upstream_cache_status always;
force_add_header X-Response-Time $upstream_header_time always;

и тогда в каждом ответе бэкенда присутствовали бы эти два заголовка,
вне зависимости от того, где в server или в location встречаются
директивы add_header и в каком количестве. Это было бы очень удобно.

--
Best regards,
Gena

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

How to write $upstream_trailer_{name} into access.log

Gena Makhomed May 22, 2021 06:02PM

Re: How to write $upstream_trailer_{name} into access.log

Andrey Kopeyko May 22, 2021 06:26PM

Re: How to write $upstream_trailer_{name} into access.log

Gena Makhomed May 22, 2021 06:52PM

Re: How to write $upstream_trailer_{name} into access.log

Andrey Kopeyko May 22, 2021 08:58PM

Re: How to write $upstream_trailer_{name} into access.log

Andrey Kopeyko May 22, 2021 09:06PM

Re: How to write $upstream_trailer_{name} into access.log

Maxim Dounin May 23, 2021 09:20PM

Re: How to write $upstream_trailer_{name} into access.log

Илья Шипицин May 23, 2021 11:42PM

Re: How to write $upstream_trailer_{name} into access.log

Gena Makhomed May 25, 2021 04:08AM

Re: How to write $upstream_trailer_{name} into access.log

Maxim Dounin May 25, 2021 08:02AM

add_header

Gena Makhomed May 25, 2021 09:44AM

Re: add_header

Илья Шипицин May 25, 2021 09:54AM

Re: add_header

Maxim Dounin May 25, 2021 10:50AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 90
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