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