$msec

变量 $msec 包含自纪元以来的当前时间(以毫秒为单位)。 — NGINX Core (HTTP)

$msec NGINX Core (HTTP)

说明

$msec 变量是 NGINX 的内置变量,提供高精度的时间信息。它返回自 Unix 纪元(1970 年 1 月 1 日)以来的当前系统时间(以毫秒为单位)。该值在处理请求时被设置,通常用于日志记录、调试和性能测量。 当收到请求时,NGINX 会获取当前时间并将其转换为毫秒,你可以在各种场景中使用该值,例如访问日志、自定义头或基于时间的条件处理。该变量的高精度在需要测量响应时间或计算请求处理不同阶段之间延迟时尤其有用。由 $msec 输出的值是一个小数,表示自纪元以来经过的总毫秒数。 该变量常与其他与时间相关的变量(例如 $time_iso8601)一起使用,用于生成既包含格式化日期又包含毫秒精度的详细日志。需要注意的是,$msec 变量的准确性取决于底层操作系统和硬件时钟的分辨率。

配置示例

log_format custom_format '$remote_addr - [$time_local] "${request}" $status $body_bytes_sent "$http_referer" "$http_user_agent" $msec';
access_log /var/log/nginx/access.log custom_format;

子系统

http

可缓存

上下文

http, server, location, if

确保服务器时间已同步(例如使用 NTP),以避免记录时间出现差异。

在将 $msec 与非毫秒精度的时间戳进行比较时要小心;这可能会在调试时导致混淆。

在将 $msec 与请求处理和计时机制(例如测量请求持续时间)结合使用时应谨慎,以防出现性能问题。在高吞吐量情况下,过度记录可能会影响性能。