【问题标题】:Nginx variable for physical server name物理服务器名称的 Nginx 变量
【发布时间】:2015-02-06 09:30:21
【问题描述】:

我正在尝试在我的单独网络服务器上设置响应标头,以输出运行 nginx 的机器的物理名称,以便我可以知道哪些服务器正在为我们的网络客户端提供响应。

是否已经存在一个变量来执行此操作?还是我只需要在每个服务器上对其进行硬编码:(

【问题讨论】:

    标签: nginx


    【解决方案1】:

    您在使用 $hostname 通用变量。常用变量在variable index 中列出。

    nginx access log documentation 仅显示特定于访问日志的变量:

    日志格式可以包含公共变量,以及存在的变量 仅在日志写入时。

    【讨论】:

    • 我该死的,我不知道我是怎么错过的。
    【解决方案2】:

    我猜你正在寻找$hostname 变量。

    【讨论】:

      【解决方案3】:

      起初我认为答案是使用 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 中使用反引号可能是致命的。

      【讨论】:

        猜你喜欢
        • 2018-04-21
        • 1970-01-01
        • 2021-06-14
        • 1970-01-01
        • 2021-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-20
        相关资源
        最近更新 更多