Всем привет.
Проксируя запросы на 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;
}
Буду рад советам, спасибо.
--
Олег