gpt4 book ai didi

PHP $_SERVER [‘SERVER_ADDR’ ] 变量总是返回 127.0.0.1

转载 作者:IT王子 更新时间:2023-10-29 00:54:24 38 4
gpt4 key购买 nike

我们有多个负载平衡的网络服务器机器运行相同的 PHP 网络应用程序 (LAMP),我想在每台服务器上运行略有不同的代码(用于测试目的)。我希望使用 $_SERVER['SERVER_ADDR'] super 全局来做这样的事情:

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'] 设置为其公共(public) IP 地址?

我猜这个问题可能与 /etc/hosts 有关,所以作为引用,它目前看起来像这样:

127.0.0.1       localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
XXX.XX.XX.XX blahblah

更新...

糟糕!我忽略了考虑 nginx Web 服务器前面的反向代理。由于 nginx conf 中的以下行,到这些 Web 服务器的所有流量都来自 nginx:

location / {
root /var/www/staging/current;
proxy_pass http://localhost:8880;
}

最佳答案

当然就这么简单

$ip = getHostByName(php_uname('n')); 
echo $ip;

关于PHP $_SERVER [‘SERVER_ADDR’ ] 变量总是返回 127.0.0.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3202872/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com