Hostname
在 Apache 中將機器主機名作為標頭髮送
我在負載均衡器後面有一組 linux apache 1.3 伺服器,我希望能夠一眼就確定我正在訪問哪台伺服器。負載均衡器的監控能力受到嚴重限制,所以我想做的是配置 apache 以發送一個額外的標頭,指示機器的主機名。
我知道我可以使用主機名將標頭硬編碼到 httpd.conf 中:
Header set X-Which-Host-Am-I 'host1'
但是,所有有問題的伺服器都使用 rsync 進行鏡像,包括配置,因此硬編碼主機名已經過時了。有沒有辦法可以呼叫
hostname
命令並將其轉儲到標題中?**澄清:**由於這些伺服器上存在多個虛擬主機,我想要物理機的主機名,而不是請求中的域名。
未經測試,但是如何通過 init(或其他啟動)腳本傳遞該行?就像是:
/path/to/httpd -c "Header set X-Hostname $HOSTNAME"
如果您使用的是 RH 風格的發行版,您可能可以將其壓縮到
/etc/sysconfig/httpd
或類似中以避免編輯 init 腳本。
您需要使用 mod_env 傳遞環境變數:
PassEnv HOSTNAME Header set X-Hostname "%{HOSTNAME}e"
您可以通過envvars文件設置HOSTNAME的值(我的是/etc/apache2/envvars)
此外,如果您使用的是 PHP,則可以使用環境變數