Ich habe folgendes Setup:
(internet) ---> [ pfSense Box ] /-> [ Apache / PHP server ]
[running HAproxy] --+--> [ Apache / PHP server ]
+--> [ Apache / PHP server ]
\-> [ Apache / PHP server ]
Bei HTTP-Anfragen funktioniert dies hervorragend . Anfragen werden einwandfrei an meine Apache-Server verteilt. Bei SSL-Anforderungen verteilte HAproxy die Anforderungen mithilfe des TCP-Lastenausgleichs. Dies funktionierte jedoch, da HAproxy nicht als Proxy fungierte, den X-Forwarded-For
HTTP-Header nicht hinzufügte und die Apache / PHP-Server die Clients nicht kannten echte IP-Adresse.
Also fügte ich stunnel
vor HAproxy hinzu und las, dass stunnel den X-Forwarded-For
HTTP-Header hinzufügen könnte . Das Paket, das ich in pfSense installieren konnte, fügt diesen Header jedoch nicht hinzu. Dies beeinträchtigt anscheinend meine Fähigkeit, KeepAlive-Anforderungen zu verwenden , die ich wirklich gerne behalten würde. Das größte Problem, das diese Idee tötete, war jedoch, dass stunnel die HTTPS-Anforderungen in einfache HTTP-Anforderungen umwandelte, sodass PHP nicht wusste, dass SSL aktiviert war, und versuchte, auf die SSL-Site umzuleiten.
Wie kann ich HAproxy zum Lastenausgleich für mehrere SSL-Server verwenden, sodass diese Server sowohl die IP-Adresse des Clients als auch wissen, dass SSL verwendet wird? Und wenn möglich, wie mache ich das auf meinem pfSense-Server?
Oder sollte ich das alles fallen lassen und einfach Nginx verwenden?
X-Forwarded-For
, siehe hier .