将机器主机名作为 Apache 中的标头发送

Eva*_*anK 4 hostname http-headers apache-1.3

我在负载平衡器后面有一组 linux apache 1.3 服务器,我希望能够一目了然地确定我正在访问哪个服务器。负载平衡器的监控能力受到严重限制,所以我想做的是配置 apache 以发送一个额外的标头,指示机器的主机名。

我知道我可以使用主机名将标头硬编码到 httpd.conf 中:

Header set X-Which-Host-Am-I 'host1'
Run Code Online (Sandbox Code Playgroud)

但是,所有有问题的服务器都使用 rsync 进行了镜像,包括配置,因此对主机名进行硬编码已经过时了。有没有办法可以调用hostname命令并将其转储到标题中?

说明:由于多个虚拟主机位于这些服务器上,我需要物理机的主机名,而不是请求中的域名。

hda*_*iel 9

您需要使用 mod_env 传递环境变量:

PassEnv HOSTNAME
Header set X-Hostname "%{HOSTNAME}e"
Run Code Online (Sandbox Code Playgroud)

您可以通过 envvars 文件设置 HOSTNAME 的值(我的是 /etc/apache2/envvars)

另外,如果您使用的是 PHP,则可以使用环境变量