Mam następującą konfigurację:
(internet) ---> [ pfSense Box ] /-> [ Apache / PHP server ]
[running HAproxy] --+--> [ Apache / PHP server ]
+--> [ Apache / PHP server ]
\-> [ Apache / PHP server ]
W przypadku żądań HTTP działa to świetnie , żądania są dobrze dystrybuowane na moje serwery Apache. W przypadku żądań SSL HAproxy dystrybuował żądania za pomocą równoważenia obciążenia TCP i działał jednak, ponieważ HAproxy nie działał jako serwer proxy, nie dodał X-Forwarded-For
nagłówka HTTP, a serwery Apache / PHP nie znały klienta prawdziwy adres IP.
Dodałem więc stunnel
przed HAproxy, czytając, że stunnel może dodać X-Forwarded-For
nagłówek HTTP. Jednak pakiet, który mogłem zainstalować w pfSense, nie dodaje tego nagłówka ... to najwyraźniej zabija moją zdolność do korzystania z żądań KeepAlive , którą naprawdę chciałbym zachować. Ale największym problemem, który zabił ten pomysł, było to, że stunnel przekształcił żądania HTTPS w zwykłe żądania HTTP, więc PHP nie wiedział, że SSL jest włączony i próbował przekierować na stronę SSL.
Jak mogę użyć HAproxy, aby załadować równowagę między wieloma serwerami SSL, pozwalając tym serwerom zarówno znać adres IP klienta, jak i wiedzieć, że SSL jest używany? A jeśli to możliwe, jak mogę to zrobić na moim serwerze pfSense?
Czy powinienem to wszystko porzucić i po prostu użyć nginx?
X-Forwarded-For
patrz tutaj .