Re: msec в заголовке
Sergey Kandaurov
pluknet на nginx.com
Пт Сен 16 11:58:07 UTC 2022
> On 16 Sep 2022, at 14:18, opan <nginx-forum на forum.nginx.org> wrote:
>
> Всем привет.
>
>
> Проксируя запросы на fastcgi-бекенд, передаем в одном из заголовков $msec.
> При этом приложение, сравнивая время, полученное в заголовке, и настоящее
> для него, дает аномальный дифф - до 40мс внутри локалки, а иногда и
> отрицательное, до -5мс.
>
> Внутри локальной сети пакеты бегают быстро - от 1 до 7мс, resolver_timeout
> не задан, ntp на сервере с nginx и бекенде синхронизирован (разница с
> ntp-сервером на каждом из серверов в пределах 1мс).
>
> Пытаемся разобраться и возник вопрос, какое время в таком случае (при
> прокидывании в заголовке) показывает $msec? Момент получения запроса от
> клиента , момент коннекшна к бекенду, момент соединения с бекендом или еще
> какое-то?
>
> Ниже конфигурация локейшна с этой проблемой:
>
>
> location = /xxxxx {
> uninitialized_variable_warn off;
>
> set $max_chunk_size 10240;
> set $max_body_size 524288;
> rewrite_by_lua_file /etc/nginx/inflate_body.lua;
> client_body_buffer_size 512k;
>
> fastcgi_pass xxxxx_all;
> fastcgi_keep_conn on;
> fastcgi_next_upstream off;
> fastcgi_pass_request_headers off;
> fastcgi_buffers 16 16k;
> fastcgi_buffer_size 32k;
>
> fastcgi_param REQUEST_METHOD $request_method;
> fastcgi_param CONTENT_TYPE $content_type;
> fastcgi_param HTTPS $https if_not_empty;
> fastcgi_param REMOTE_ADDR $remote_addr;
> fastcgi_param REQUEST_RECEIVED_TIME $msec;
[..]
Переменная вычисляется при формировании заголовков запроса на бэкенд.
Это происходит после вычитывания всех заголовков клиентского запроса
и перед первой попыткой установки соединения с бэкендом.
--
Sergey Kandaurov
Подробная информация о списке рассылки nginx-ru