使用 Nginx 将时间戳标头传递到上游服务器

使用 Nginx 将时间戳标头传递到上游服务器

我想要让我的 Nginx 负载均衡器将标头中的时间戳发送到上游服务器。

我尝试了这样的事情:

proxy_set_header X-Start-Time $msec;

当然,$msec 是一个日志变量,Nginx 给出错误:

Restarting nginx: [emerg]: unknown "msec" variable

答案1

$msec确实是一个仅在日志写入期间存在的变量。

最简单的解决方案是使用 Perl 模块构建 Nginx 并定义一个由 Perl 子程序支持的变量:

# at 'http' context
perl_set $unix_timestamp 'sub {
  time();
}';

# where you want it:
proxy_set_header X-Start-Time $unix_timestamp;

答案2

$time_iso8601 对机器和人类都友好。

答案3

ngx_http_ssi_模块可以使用嵌入的变量$date_gmt。因此

proxy_set_header X-Start-Time $date_gmt;

相关内容