[PHP] recuperare IP dei server in load balancing [RISOLTO]

Discussione in 'PHP' iniziata da bdario58, 28 Giugno 2019.

  1. bdario58

    bdario58 Nuovo Utente

    Registrato:
    28 Giugno 2019
    Messaggi:
    4
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Buongiorno a tutti,
    premessa: non conosco php
    ho realizzato un ambiente web in ha utilizzando Apache come Reverse Proxy
    In allegato l'immagine dell'architettura.
    Tutti i server sono CentOS 7 e montano Apache 2.4
    La DocumentRoot fa riferimento ad una directory nfs fisicamente presente sul server nfs
    i server sono in load balancing dietro al reverse proxy
    ho verificato che quando interrogo il proxy i server web rispondono alternativamente nel rispetto della mia configurazione
    In sostanza tutto funziona perfettamente
    Il mio desiderio è quello di presentare l'indirizzo IP del server web che restituisce il servizio al proxy in modo da sapere quale web server risponde al proxy
    Ho provato con un piccolo script php che restituisce il risultato della funzione $_SERVER['REMOTE_ADDR'];
    peccato che il remote_addr sia quello del proxy, mentre io vorrei vedere quello del web-1 oppure quello del web-2 a seconda di quale dei due web server stia offrendo il servizio al proxy in quel momento.
    Spero di essere stato chiaro
    Ringrazio per la collaborazione
    Dario
    Apache_load_balancer.jpg
     
  2. bdario58

    bdario58 Nuovo Utente

    Registrato:
    28 Giugno 2019
    Messaggi:
    4
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Ho risolto come segue:
    <?php
    $server_name=exec('hostname');
    echo "servizio erogato dal server: $server_name ";
    echo " attivo con IP: " . $_SERVER['SERVER_ADDR'];
    ?>

    Grazie comunque, alla prossima.
    Dario
     
  3. mr.x

    mr.x Utente Attivo

    Registrato:
    9 Aprile 2016
    Messaggi:
    221
    Mi Piace Ricevuti:
    22
    Punteggio:
    28
    prova anche questi

    PHP:

    $hostname 
    gethostname();

    echo 
    $hostname.'<br>';

    $hostname php_uname('n'); //con uname puoi avere anche altr info sulla macchina es. cambia 'n' con 'a'

    echo $hostname.'<br>';

    $ip=gethostbyname($hostname); //ip della macchina in base all'hostname restituio dalla funzione precedente

    echo $ip;
     
  4. bdario58

    bdario58 Nuovo Utente

    Registrato:
    28 Giugno 2019
    Messaggi:
    4
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Grazie Mr.X
    molto più elegante di quanto avevo realizzato io
    Dario
     
Sto caricando...

Condividi questa Pagina