Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 11-08-2015 19:38:19

MoxSite
Membre
Inscription : 28-07-2015

Pound + Nginx : comment récupérer l'adresse IP client (visiteur) ?

Bonsoir,

J'ai installé Pound pour rediriger le trafic web vers des services qui tournent avec LXC, le trafic est bien redirigé, mais je n'arrive pas à récupérer l'adresse IP des visiteurs avec Nginx. Dans les logs de Nginx par exemple c'est l'adresse IP local (hôte) qui est récupérée, pour le PHP-FPM c'est la même chose.

Voici mon fichier "/etc/pound/pound.cfg" :


## Minimal sample pound.cfg
##
## see pound(8) for details


######################################################################
## global options:

User            "www-data"
Group           "www-data"
#RootJail       "/chroot/pound"

## Logging: (goes to syslog by default)
##      0       no logging
##      1       normal
##      2       extended
##      3       Apache-style (common log format)
LogLevel        1

## check backend every X secs:
Alive           30

## use hardware-accelleration card supported by openssl(1):
#SSLEngine      ""

# poundctl control socket
Control "/var/run/pound/poundctl.socket"


######################################################################
## listen, redirect and ... to:

## redirect all requests on port 8080 ("ListenHTTP") to the local webserver (see "Service" below):

#ListenHTTP
#        Address 0.0.0.0
#        Port 80
        ## allow PUT and DELETE also (by default only GET, POST and HEAD)?:
#        xHTTP           2
#        Service
#                BackEnd
#                        Address 192.168.xxx.xx
#                        Port    80
#                End
#        End
#End

ListenHTTPS
        Address 0.0.0.0
        Port 443
        Cert "/etc/pound/ssl/server.pem"

        AddHeader "X-Forwarded-Proto: https"

        ## allow PUT and DELETE also (by default only GET, POST and HEAD)?:
        xHTTP           2
        Service
                HeadRequire "Host:.*sous-domaine.xxxxxxx.xxxxx.*"
                BackEnd
                        Address 192.168.xxx.xx
                        Port    80
                End
        End
End
 



Quelqu'un a une idée ?

Hors ligne

#2 11-08-2015 22:11:47

MoxSite
Membre
Inscription : 28-07-2015

Re : Pound + Nginx : comment récupérer l'adresse IP client (visiteur) ?

Bon je réponds à moi même et je donne la solution :

Si vous avez un Nginx qui tourne derrière un reverse proxy, il faut modifier le fichier de configuration de Nginx ou directement dans un VirtualHost mettre ceci :

server {
....

    # Liste des IP des reverse proxies(Pound), par exemple
    set_real_ip_from 192.168.101.0/24;
    #set_real_ip_from 192.168.101.5;
    # Le header HTTP qui contient la vraie IP
    real_ip_header X-Forwarded-For;

....
}

Hors ligne

Pied de page des forums