ฉันมีการตั้งค่าต่อไปนี้:
(internet) ---> [ pfSense Box ] /-> [ Apache / PHP server ]
[running HAproxy] --+--> [ Apache / PHP server ]
+--> [ Apache / PHP server ]
\-> [ Apache / PHP server ]
สำหรับคำขอ HTTP นี้ใช้งานได้ดีการร้องขอถูกแจกจ่ายไปยังเซิร์ฟเวอร์ Apache ของฉันไม่เป็นไร สำหรับการร้องขอ SSL ฉันมี HAproxy กระจายการร้องขอโดยใช้ TCP load balancing และทำงานได้เนื่องจาก HAproxy ไม่ได้ทำหน้าที่เป็นพร็อกซีมันไม่ได้เพิ่มX-Forwarded-For
ส่วนหัว HTTP และเซิร์ฟเวอร์ Apache / PHP ไม่รู้จักลูกค้า ที่อยู่ IP จริง
ดังนั้นฉันเพิ่มstunnel
ด้านหน้า HAproxy การอ่านว่า stunnel สามารถเพิ่มX-Forwarded-For
ส่วนหัว HTTP ได้ อย่างไรก็ตามแพคเกจที่ฉันสามารถติดตั้งลงใน pfSense ไม่ได้เพิ่มหัวข้อนี้ ... เช่นกันสิ่งนี้ทำให้ฉันไม่สามารถใช้คำขอ KeepAliveซึ่งฉันต้องการเก็บไว้จริงๆ แต่ปัญหาที่ใหญ่ที่สุดที่ทำลายความคิดนั้นคือ stunnel แปลงคำขอ HTTPS เป็นคำขอ HTTP ธรรมดาดังนั้น PHP ไม่ทราบว่า SSL ถูกเปิดใช้งานและพยายามเปลี่ยนเส้นทางไปยังไซต์ SSL
ฉันจะใช้ HAproxy เพื่อโหลดบาลานซ์ในเซิร์ฟเวอร์ SSL จำนวนหนึ่งได้อย่างไรทำให้เซิร์ฟเวอร์เหล่านั้นรู้ทั้งที่อยู่ IP ของลูกค้าและรู้ว่ามีการใช้งาน SSL อยู่หรือไม่ และถ้าเป็นไปได้ฉันจะทำบนเซิร์ฟเวอร์ pfSense ได้อย่างไร
หรือฉันควรจะวางทั้งหมดนี้และเพียงแค่ใช้ nginx?
X-Forwarded-For
ดูที่นี่