Ich habe ein Problem mit dem HAProxy-Server. Ich möchte im Header eine Client-IP weiterleiten. Ich habe es fast geschafft, aber es gibt einen interessanten Fall und ich kann es nicht herausfinden. Ich muss die Client-IP an zwei Stellen im Header schreiben, in den Tags X-CLIENT-IP und X-FORWARDED-FOR.
Das Problem ist: Wenn ich benutze
option http-server-close
option forwardfor
Auf dem Zielserver wird im Header X-FORWARDED-FOR = xxx.xxx.xxx.xxx (Client-IP) angezeigt, aber es gibt keinen x-Client-IP-Header.
Wenn ich benutze:
option forwardfor header X-Client-IP
option http-server-close
Auf dem Zielserver wird der Header X-CLIENT-IP = xxx.xxx.xxx (Client-IP), aber X-FORWARDED-FOR = xxx.xxx.xxx.xxx (HAProxy ip) angezeigt.
Ich muss im Zielheader sehen, wo X-CLIENT-IP und X-FORWARDED-FOR den Wert der Client-IP haben.
Ich versuche Konfigurationen wie zu mischen
option forwardfor
option forwardfor header X-Client-IP
option http-server-close
Kein Effekt. Ich kann auch keine Module installieren. Das Ziel ist IIS.
Irgendwelche Ideen? :(
Wenn Sie beide verwenden möchten, müssen Sie die zweite mit einem
http-request
Schlüsselwort hinzufügen .quelle
X-CLIENT-IP
nicht vom Client festgelegt, sondern von HAProxy basierend auf der Quell-IP. Ich würde vorschlagen, diese Kommentare bei Fragen zu hinterlassen, bei denen dies relevant ist , um die Leser nicht zu verwirren.add-header
entfernt nicht dasX-CLIENT-IP
, was möglicherweise vom Client festgelegt wurde. Aus diesem Grund hat @Der_Meister empfohlen,set-header
stattdessen zu verwenden. Ich schlage vor, Ihre Antwort zu bearbeiten, um sieset-header
stattdessen zu verwenden .Die oben vorgeschlagene Antwort, die für KacproSo nicht funktionierte, musste nur den Wert durch Hinzufügen lesen
&[...]
, daher sollte dies gut funktionieren:quelle
Bei HAproxy 1.7 ist dies die richtige Syntax, mit der dies funktioniert, ohne die eckigen Klammern um X-Forwarded-For
quelle
Sie können ein Modul namens mod_rpaf auf Ihren Backend-Servern installieren. Dadurch wird die X-FORWARDED-FOR-IP in die X-CLIENT-IP kopiert. Weitere Informationen finden Sie hier . Unter Windows sollten ähnliche Module vorhanden sein, z. B. X-Forwarded-For-ASAPI-Filter.
quelle