У нас есть несколько машин веб-сервера с балансировкой нагрузки, на которых запущено одно и то же веб-приложение PHP ( 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
Обновление ...
Упс !Я забыл рассмотреть обратный прокси nginx перед веб-серверами.Весь трафик на эти веб-серверы поступает из nginx из-за следующей строки в conf nginx:
location / {
root /var/www/staging/current;
proxy_pass http://localhost:8880;
}