HAProxy HTTP กับ TCP


17

HAProxy ให้ตัวเลือกในการตั้งค่าโหมดเป็น TCP หรือ HTTP นอกจากนี้ยังช่วยให้คุณสามารถตั้งค่าพอร์ต

เหตุใดจึงอนุญาตให้ฉันเลือกระหว่าง HTTP กับ TCP ถ้าให้ฉันเลือกพอร์ตด้วยล่ะ แน่นอนถ้าฉันต้องการ HTTP ฉันสามารถเลือก TCP และพอร์ต 80 ได้หรือไม่

ทำไมต้องใช้ TCP และ HTTP เท่านั้น ดูเหมือนว่าแปลว่า HTTP ไม่ใช่ TCP ทำไมไม่มี TCP, HTTP, SNMP, FTP, etc และอื่น ๆ

ทำไมต้องเป็น HTTP และ TCP เหตุใดจึงมีตัวเลือกเหล่านี้อย่างใดอย่างหนึ่งถ้า HTTP เป็น TCP พบว่ามันสับสนมากและเป็นเรื่องยากมากที่จะค้นหาข้อมูลใด ๆ เกี่ยวกับบริการโหลดบาลานซ์ที่ไม่ใช่ http

คำตอบ:


28

โดยการใช้วิธี HTTP ในการกำหนดค่า HAProxy คุณจะสามารถเข้าถึงตัวเลือกเฉพาะ HTTP ได้หลายตัว ตัวอย่างเช่นคุณสามารถเลือกแบ็กเอนด์ที่แตกต่างกันตาม URL ในคำขอ HTTP เมื่อระบุโหมด TCP HAProxy จะไม่ประเมินส่วนหัว HTTP ในแพ็คเก็ต

ดังนั้นคุณสามารถใช้ TCP สำหรับการรับส่งข้อมูล HTTP ได้ แต่คุณจะไม่มีตัวเลือก HTTP เพิ่มเติม ตามหมายเหตุด้านข้างยกเว้นว่าคุณกำลังใช้คุณสมบัติ SSL คุณต้องใช้ TCP สำหรับการรับส่งข้อมูล HTTPS เนื่องจากแพ็กเก็ตนั้นได้รับการเข้ารหัสและ HAProxy ไม่สามารถดูส่วนหัว HTTP ได้


ขอบคุณ นั่นเป็นเหตุผลที่ทำให้ฉันเข้าใจ ไชโย
marflar

6

ใครบางคนเขียนบล็อกโพสต์เกี่ยวกับเรื่องนี้: http://www.linickx.com/645/load-balance-anything-with-haproxy

อย่างไรก็ตามผมไม่ทราบว่าทำไมคนที่รักษาใช้ haproxy ไวยากรณ์ที่พวกเขาเลือกผมไม่ชอบมันเท่าที่ฉันพบว่ามันทำให้เข้าใจผิด (พูดอะไรบางอย่างสามารถเป็น HTTP หรือสกรู TCP กับสมองของฉัน) แต่มันกลับกลายเป็นคุณ สามารถโหลดบาลานซ์อะไรก็ได้ด้วย HAProxy และถ้าไม่ใช่ HTTP ก็แค่ไปกับ TCP และหมายเลขพอร์ตที่ถูกต้อง


HTTP คือ TCP ที่เลเยอร์การขนส่งดังนั้นแอปพลิเคชันทั้งหมดเป็นเพียง TCP ที่มีความเชี่ยวชาญเฉพาะสำหรับ HTTP ลิงค์ที่ดีโดยวิธีการ
Signus
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.