msec в заголовке

opan nginx-forum на forum.nginx.org
Пт Сен 16 10:18:53 UTC 2022


Всем привет.


Проксируя запросы на 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;
        fastcgi_param  REQUEST_URI        $request_uri;
        fastcgi_param  QUERY_STRING       $query_string if_not_empty;
        fastcgi_param  HTTP_REFERER       $http_referer if_not_empty;
        fastcgi_param  USER_AGENT         $http_user_agent if_not_empty;
        fastcgi_param  HTTP_COOKIE        $http_cookie if_not_empty;

        fastcgi_connect_timeout 20ms;
        fastcgi_read_timeout 75ms;
        fastcgi_intercept_errors on;
        error_page 500 501 502 503 504 = $failover;

        error_log
syslog:server=unix:/var/log/nginx_log_socket,facility=local7,tag=log_err,severity=info
notice;
        access_log
syslog:server=unix:/var/log/nginx_log_socket,facility=local7,tag=log_acc,severity=info
xxxx;
    }

Буду рад советам, спасибо.


--

Олег

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295224,295224#msg-295224



Подробная информация о списке рассылки nginx-ru