Von dieser Konfiguration aus scheinen Sie SNI-Sniffing zu machen, aber alle Backends laufen zurück zu HAProxy selbst. In diesem Fall ist SNI-Sniffing nicht erforderlich. Vielleicht übersehe ich etwas anderes, das dies erfordern würde.
Es sollte klar sein, warum Sie die Proxy-IP in X-Forwarded-For
bekommen - HAProxy sich spricht. Der erste Durchlauf über den Proxy ist die Client-Verbindung, soweit der Proxy im zweiten Durchgang ermitteln kann, weil nur der zweite Durchlauf HTTP spricht. Es sieht nur, dass eine eingehende TCP-Verbindung von ... selbst angekommen ist.
Die Lösung ist für das First-Pass-Back-End der ursprünglichen Client-Informationen mit dem Proxy-Protokoll und den zweiten Pass Frontend zu passieren, sie zu entschlüsseln.
accept-proxy
die bind
lines In dem zweiten Pass Frontends, und fügen Sie send-proxy
die server
Linien auf dem First-Pass-Back-Ends. Auf diese Weise sendet das First-Pass-Backend in der Verbindung, in der HAProxy mit sich selbst spricht, die Proxy-Protokoll-Präambel und das Second-Pass-Frontend dekodiert den eingehenden Wert und platziert ihn in X-Forwarded-For
.