我们有多个负载平衡的 webserver 机器运行相同的 PHP webapp ( LAMP ),我想在每台服务器上运行稍微不同的代码(用于测试目的)。我希望使用$_SERVER['SERVER_ADDR']
超级全局来做这样的事情:
if ($_SERVER['SERVER_ADDR'] == 'XXX.XXX.XXX.XXX') {
echo "Do one thing";
} elseif ($_SERVER['SERVER_ADDR'] == 'YYY.YYY.YYY.YYY') {
echo "Do something else";
}
不幸的是,这不起作用,因为两台机器都设置$_SERVER['SERVER_ADDR']
为“ 127.0.0.1 ”。如何配置它们以便$_SERVER['SERVER_ADDR']
设置为它们的公共 IP 地址?
我猜这个问题可能与参考/etc/hosts
有关,它目前看起来像这样:
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
XXX.XX.XX.XX blahblah
更新...
哎呀!我忽略了考虑Web 服务器前面的nginx反向代理。由于 nginx conf 中的以下行,到这些 Web 服务器的所有流量都来自 nginx:
location / {
root /var/www/staging/current;
proxy_pass http://localhost:8880;
}