J'ai un problème avec le serveur HAProxy. Je veux transmettre en en-tête une adresse IP client. Je l'ai presque fait, mais il y a un cas intéressant et je ne peux pas le comprendre. J'ai besoin d'écrire l'IP du client à 2 endroits dans l'en-tête, dans les balises X-CLIENT-IP et X-FORWARDED-FOR.
Le problème est: quand j'utilise
option http-server-close
option forwardfor
Sur le serveur cible, je vois dans l'en-tête X-FORWARDED-FOR = xxx.xxx.xxx.xxx (ip client) mais il n'y a pas d'en-tête x-client-ip.
Quand j'utilise:
option forwardfor header X-Client-IP
option http-server-close
Sur le serveur cible, je vois l'en-tête X-CLIENT-IP = xxx.xxx.xxx (IP client) mais X-FORWARDED-FOR = xxx.xxx.xxx.xxx (HAProxy ip)
J'ai besoin de voir sur l'en-tête cible où X-CLIENT-IP et X-FORWARDED-FOR ont une valeur d'IP client.
J'essaye de mélanger des configurations comme
option forwardfor
option forwardfor header X-Client-IP
option http-server-close
Aucun effet. Je ne peux pas non plus installer de modules. La cible est IIS.
Des idées? :(
Si vous souhaitez utiliser les deux, vous devrez ajouter le second avec un
http-request
mot-clé.la source
X-CLIENT-IP
n'est pas défini par le client, mais plutôt par HAProxy en fonction de l'IP source. Je suggérerais de laisser ces commentaires sur les questions où cela est pertinent afin de ne pas confondre les lecteurs.add-header
ne supprime pas celuiX-CLIENT-IP
qui peut avoir été défini par le client. C'est pourquoi @Der_Meister a recommandé d'utiliser à laset-header
place. Je suggère de modifier votre réponse pour l'utiliser à laset-header
place.La réponse suggérée ci-dessus qui ne fonctionnait pas pour KacproSo devait simplement lire la valeur en ajoutant
&[...]
, cela devrait donc fonctionner correctement:la source
Essayer HAproxy 1.7, c'est la syntaxe correcte qui fait que cela fonctionne, sans les carrés carrés autour de X-Forwarded-For
la source
Vous pouvez installer un module appelé mod_rpaf sur vos serveurs principaux. Ceci copie l'IP X-FORWARDED-FOR sur l'X-CLIENT-IP. Pour plus d'informations, voir ceci . Sous Windows, vous devriez avoir des modules similaires, quelque chose comme des filtres X-Forwarded-For ASAPI.
la source