J'ai la configuration suivante:
(internet) ---> [ pfSense Box ] /-> [ Apache / PHP server ]
[running HAproxy] --+--> [ Apache / PHP server ]
+--> [ Apache / PHP server ]
\-> [ Apache / PHP server ]
Pour les requêtes HTTP, cela fonctionne très bien , les requêtes sont très bien distribuées sur mes serveurs Apache. Pour les demandes SSL, j'avais HAproxy distribuant les demandes à l'aide de l'équilibrage de charge TCP, et cela a fonctionné cependant puisque HAproxy n'a pas agi en tant que proxy, il n'a pas ajouté l' X-Forwarded-For
en-tête HTTP et les serveurs Apache / PHP ne connaissaient pas le client. véritable adresse IP.
Donc, j'ai ajouté stunnel
devant HAproxy, en lisant que Stunnel pouvait ajouter l' X-Forwarded-For
en-tête HTTP. Cependant, le paquet que je pourrais installer dans pfSense n'ajoute pas cet en-tête ... aussi, cela tue apparemment ma capacité à utiliser les requêtes KeepAlive , que j'aimerais vraiment garder. Mais le plus gros problème qui a tué cette idée était que Stunnel convertissait les requêtes HTTPS en requêtes HTTP simples, donc PHP ne savait pas que SSL était activé et tentait de rediriger vers le site SSL.
Comment puis-je utiliser HAproxy pour équilibrer la charge sur un certain nombre de serveurs SSL, permettant à ces serveurs à la fois de connaître l'adresse IP du client et de savoir que SSL est utilisé? Et si possible, comment puis-je le faire sur mon serveur pfSense?
Ou devrais-je laisser tomber tout cela et utiliser simplement nginx?
X-Forwarded-For
, voir ici .