Ho la seguente configurazione:
(internet) ---> [ pfSense Box ] /-> [ Apache / PHP server ]
[running HAproxy] --+--> [ Apache / PHP server ]
+--> [ Apache / PHP server ]
\-> [ Apache / PHP server ]
Per le richieste HTTP funziona alla grande , le richieste sono distribuite sui miei server Apache bene. Per le richieste SSL, avevo HAproxy che distribuiva le richieste usando il bilanciamento del carico TCP, e ha funzionato comunque poiché HAproxy non ha funzionato come proxy, non ha aggiunto l' X-Forwarded-For
intestazione HTTP e i server Apache / PHP non conoscevano il client indirizzo IP reale.
Quindi, ho aggiunto stunnel
davanti a HAproxy, leggendo che lo stunnel potrebbe aggiungere l' X-Forwarded-For
intestazione HTTP. Tuttavia, il pacchetto che ho potuto installare in pfSense non aggiunge questa intestazione ... inoltre, questo apparentemente uccide la mia capacità di usare le richieste KeepAlive , che vorrei davvero conservare. Ma il problema più grande che ha ucciso quell'idea era che lo stunnel ha convertito le richieste HTTPS in semplici richieste HTTP, quindi PHP non sapeva che SSL era abilitato e ha cercato di reindirizzare al sito SSL.
Come posso usare HAproxy per bilanciare il carico su un numero di server SSL, consentendo a questi server sia di conoscere l'indirizzo IP del client sia di sapere che SSL è in uso? E se possibile, come posso farlo sul mio server pfSense?
O dovrei abbandonare tutto questo e usare solo nginx?
X-Forwarded-For
, vedi qui .