为了调试集群上的问题,我试图确定集群上的哪台机器导致了问题。我的想法是我可以插入标识服务器的标头令牌。
我的第一个想法是在我的httpd.conf
中添加指令HeaderaddX-Server-Ip"%{SERVER\_ADDR}e
。但是,由于我们的负载均衡器的性质,Apache以某种方式将其解析为集群所有机器上的负载均衡器IP地址——这真的、真的没有用。
不过,我终于偶然发现了一个好的解决方案:您可以在apachectl
中设置环境变量,然后使用中的
;完成后,您可以在任何地方使用环境变量。PassEnv
指令将它们传递到Apache环境中mod_env
在我的apachectl
中,我添加了行exportHOSTNAME=\
hostname“。然后,在我的httpd.conf
中,我首先添加了行PassEnvHOSTNAME
,然后是指令HeaderaddX-Server-Name"%{HOSTNAME}e"。瞧!我现在在标头中有了主机名,它为我提供了调试所需的信息。