Wir haben mehrere Webserver mit Lastausgleich, auf denen dieselbe PHP-Webanwendung ( LAMP ) und ich möchte auf jedem Server etwas anderen Code laufen lassen ( für Testzwecke ). Ich hatte gehofft, die $_SERVER['SERVER_ADDR']
super global, um so etwas zu tun:
if ($_SERVER['SERVER_ADDR'] == 'XXX.XXX.XXX.XXX') {
echo "Do one thing";
} elseif ($_SERVER['SERVER_ADDR'] == 'YYY.YYY.YYY.YYY') {
echo "Do something else";
}
Leider funktioniert dies nicht, da beide Rechner die $_SERVER['SERVER_ADDR']
zu ' 127.0.0.1 '. Wie kann ich sie so konfigurieren, dass $_SERVER['SERVER_ADDR']
auf ihre öffentliche IP-Adresse eingestellt ist?
Ich vermute, dass das Problem etwas mit folgenden Faktoren zu tun hat /etc/hosts
Zur Veranschaulichung sieht es derzeit wie folgt aus:
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
XXX.XX.XX.XX blahblah
Update...
Hoppla ! Ich habe nicht bedacht, dass die nginx Reverse-Proxy vor den Webservern. Der gesamte Verkehr zu diesen Webservern kommt von nginx aufgrund der folgenden Zeile in der nginx conf:
location / {
root /var/www/staging/current;
proxy_pass http://localhost:8880;
}