PHP $ _SERVER [â € ~ SERVER_ADDRâ € ™] değişken her zaman 127.0.0.1 döndürür

0 Cevap php

Biz aynı PHP webapp (LAMP) çalıştıran birden çok yük dengeli webserver makineleri var ve ben her sunucuda biraz farklı kod çalıştırmak istiyorum (for testing purposes). Ben böyle bir şey yapmak için $_SERVER['SERVER_ADDR'] süper global kullanmak umuyordum:

if ($_SERVER['SERVER_ADDR'] == 'XXX.XXX.XXX.XXX') {
  echo "Do one thing";
} elseif ($_SERVER['SERVER_ADDR'] == 'YYY.YYY.YYY.YYY') {
  echo "Do something else";
}

Iki makine $_SERVER['SERVER_ADDR'] '127.0.0.1' ayarı çünkü ne yazık ki, bu işe yaramazsa. $_SERVER['SERVER_ADDR'] kendi genel IP adresi olarak ayarlanır, böylece Onları nasıl yapılandırabilirsiniz?

Ben refererence için şu anda bu gibi görünüyor bu yüzden sorunu /etc/hosts ile ilgili bir şey olabilir tahmin ediyorum:

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

Update...

Oops! Ben web sunucularının önünde nginx ters proxy dikkate ihmal. Bu web sunucularının tüm trafik nedeniyle nginx conf aşağıdaki satırı için nginx itibaren gelen:

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

0 Cevap