我尝试在单独的网络服务器上设置响应标头,输出运行nginx的计算机的物理名称,以便我可以告诉哪些服务器正在为我们的网络客户端提供响应。
是否存在可以执行此操作的变量?或者我只需要为每台服务器进行硬编码:(
答案 0 :(得分:1)
你在$hostname公共变量之后。公共变量列在variable index中。
nginx access log documentation仅显示特定于访问日志的变量:
日志格式可以包含公共变量和存在的变量 仅在日志写入时。
答案 1 :(得分:-1)
起初我认为答案是使用ENV变量并从https://docs.apitools.com/blog/2014/07/02/using-environment-variables-in-nginx-conf.html中取出主机名。但由于某种原因,我无法让它发挥作用。
然而,这就像一个魅力:
perl_set $server_int 'sub { use Sys::Hostname; return hostname; }';
示例用法:
add_header 'Server-Int' "$server_int";
只需要确保您的nginx使用--with-http_perl_module
进行编译 - 只需运行nginx -V
即可确保。并且您已安装Sys :: Hostname。
警告:我最初使用hostname
在Perl脚本中返回主机名,但是虽然确实返回了名称,但由于某种原因,它会中止输出的其余部分。我不知道它是否是perl_set的错误,但你已被警告 - 在perl_set中使用反引号可能是致命的。
答案 2 :(得分:-2)
我猜你正在寻找$hostname
变量。