อะไรคือความแตกต่างระหว่าง Load Balancer และ Reverse Proxy?


117

ฉันไม่ชัดเจนเกี่ยวกับความแตกต่างระหว่าง Load Balancer และ Reverse Proxy พวกเขาทั้งสองดูเหมือนจะมีพฤติกรรมเหมือนกัน: การกระจายคำขอขาเข้าไปยังเซิร์ฟเวอร์แบ็กเอนด์


1
คำอธิบายที่ดีจาก Nginx: nginx.com/resources/glossary/reverse-proxy-vs-load-balancer
Shashank

คำตอบ:


114

ความสับสนของคุณมีเหตุผล - พวกเขามักจะเป็นสิ่งเดียวกัน แต่ไม่เสมอไป. เมื่อคุณอ้างถึง load balancer คุณกำลังอ้างถึงสิ่งที่เจาะจงมาก - เซิร์ฟเวอร์หรืออุปกรณ์ที่ทำหน้าที่ร้องขอขาเข้าข้ามเว็บเซิร์ฟเวอร์สองเครื่องขึ้นไปเพื่อกระจายโหลด พร็อกซีย้อนกลับอย่างไรก็ตามโดยทั่วไปมีคุณสมบัติจำนวนเท่าใดก็ได้:

  1. โหลดบาลานซ์: ตามที่กล่าวไว้ข้างต้น

  2. การแคช: สามารถแคชเนื้อหาจากเว็บเซิร์ฟเวอร์ด้านหลังและลดภาระบนเว็บเซิร์ฟเวอร์และส่งคืนเนื้อหาสแตติกบางส่วนกลับไปยังผู้ร้องขอโดยไม่ต้องรับข้อมูลจากเว็บเซิร์ฟเวอร์

  3. ความปลอดภัย: สามารถป้องกันเว็บเซิร์ฟเวอร์ได้โดยป้องกันการเข้าถึงโดยตรงจากอินเทอร์เน็ต มันอาจทำผ่านวิธีง่าย ๆ เพียงแค่ทำให้เว็บเซิร์ฟเวอร์ยุ่งเหยิงหรืออาจมีส่วนประกอบเพิ่มเติมที่ใช้งานได้จริงซึ่งตรวจสอบคำขอขาเข้าที่กำลังค้นหาโค้ดอันตราย

  4. การเร่งความเร็ว SSL: เมื่อใช้ SSL; มันอาจทำหน้าที่เป็นจุดสิ้นสุดสำหรับเซสชัน SSL เหล่านั้นเพื่อให้ปริมาณงานของการจัดการกับการเข้ารหัสถูก offloaded จากเว็บเซิร์ฟเวอร์

ฉันคิดว่านี่จะครอบคลุมส่วนใหญ่ แต่อาจมีคุณสมบัติอื่น ๆ ที่ฉันพลาดไป แน่นอนว่าไม่ใช่เรื่องแปลกที่จะเห็นอุปกรณ์หรือชิ้นส่วนของซอฟต์แวร์ที่วางตลาดเป็นโหลดบาลานซ์ / พร็อกซีย้อนกลับเนื่องจากคุณลักษณะดังกล่าวมักจะรวมเข้าด้วยกัน


2
+ การรวมการเชื่อมต่อ (อนุญาตให้มีการร้องขอหลายครั้งในการเชื่อมต่อส่วนหน้าเดียวเมื่อแบ็กเอนด์จัดการได้ไม่ดีหรือนำการเชื่อมต่อแบ็กเอนด์กลับมาใช้ใหม่สำหรับการเชื่อมต่อส่วนหน้าหลายรายการ)
kubanczyk

+ การบีบอัดการบีบอัดการตอบกลับของเซิร์ฟเวอร์ก่อนส่งคืนไปยังไคลเอนต์ (เช่นด้วย gzip) ลดปริมาณแบนด์วิดท์ที่ต้องการซึ่งเพิ่มความเร็วในการส่งผ่านเครือข่าย
dimuthu

25

นอกจากนี้พร็อกซีย้อนกลับจะใช้กับเว็บเซิร์ฟเวอร์

โหลดบาลานเซอร์สามารถจัดการกับโปรโตคอลอื่น ๆ ได้มากมาย ในขณะที่เว็บ (HTTP) เป็นแนวคิดที่ยิ่งใหญ่ทุกวันนี้สิ่งต่าง ๆ เช่น DNS, เมล (SMTP, IMAP) ฯลฯ สามารถโหลดได้อย่างสมดุลเช่นกัน ทุกวันนี้เมื่อคนส่วนใหญ่คิดว่า "อินเทอร์เน็ต" หรือ "เครือข่าย IP" ที่พวกเขาคิดถึงเว็บ มีอีกหลายสิ่งที่อาจทำให้คลุมเครือมากขึ้น


12

ในขณะที่ผลลัพธ์สุทธิ (การกระจายการร้องขอระหว่างเซิร์ฟเวอร์) เหมือนกันระหว่าง load balancer และ reverse proxies ต่างกันความแตกต่างคือวิธีที่ใช้ในการกระจายคำร้องขอ

ตัวโหลดบาลานเซอร์บางตัวสร้างความสมดุลของทราฟฟิกโดยใช้ DNS แก้ไขชื่อเดียวกันกับ IP ที่แตกต่างกันในการปัดเศษรอบเพื่อเปลี่ยนเส้นทางคำขออย่างมีประสิทธิภาพ สิ่งนี้มักจะมีประโยชน์เมื่อโหลดการร้องขอสมดุลระหว่างศูนย์ข้อมูลหรือตำแหน่งทางกายภาพอื่น ๆ นี่เป็นตัวเลือกที่ไม่ดีหากคุณต้องการ "ทันใจ" ล้มเหลวเนื่องจากคุณอยู่ในความเมตตาของไคลเอนต์เซิร์ฟเวอร์ DNS ของคุณเพื่อให้เกียรติกับ TTL ที่คุณให้ไว้ GSS ของ Cisco (ตัวเลือกไซต์ทั่วโลก) เป็นตัวอย่างที่ดีของการทำโหลดบาลานซ์บน DNS

ตัวโหลดบาลานซ์อื่นทำงานโดยการเขียนส่วนหัวของแพ็กเก็ตใหม่ที่กำหนดเป็น IP เสมือนไปยัง IP จริงของเซิร์ฟเวอร์ในฟาร์ม ซึ่งช่วยให้การทำโหลดบาลานซ์แบบเรียลไทม์และเกิดความล้มเหลวในทันที ตัวอย่างนี้จะเป็น CSM ของ Cisco (Content Switching Module)

โปรดทราบว่าในตัวอย่างข้างต้นมีการสนทนา TCP ระหว่างไคลเอนต์และเซิร์ฟเวอร์

พร็อกซีย้อนกลับทำงานโดยการยอมรับคำขอในนามของเว็บเซิร์ฟเวอร์จากนั้นสะท้อนการร้องขอนั้นไปยังเว็บเซิร์ฟเวอร์และส่งกลับไปยังไคลเอนต์ทางเลือกการแคชผลลัพธ์ควรเป็นคำขอที่คล้ายกัน

โปรดทราบว่าไคลเอนต์ไม่เคยสร้างการเชื่อมต่อกับเว็บเซิร์ฟเวอร์ ค่อนข้างการสนทนาระหว่างพร็อกซีและลูกค้าอย่างเคร่งครัด


4

ตัวโหลดบาลานซ์สามารถปรับสมดุลทราฟฟิกจากเลเยอร์ 3 ขึ้นไปจนถึงเลเยอร์ 7 แต่พร็อกซีย้อนกลับเป็น HTTP เฉพาะ


3

พร็อกซีกลับยอมรับการร้องขอจากลูกค้าที่ส่งต่อไปยังเซิร์ฟเวอร์ที่สามารถตอบสนองความมันและผลตอบแทนการตอบสนองของเซิร์ฟเวอร์ไปยังลูกค้า (ซึ่งหมายความว่าเซิร์ฟเวอร์หลังพร็อกซีย้อนกลับสามารถสื่อสารด้วยคุณสมบัติที่แตกต่างกันบ้างโปรโตคอลหรือโปรโตคอลที่แตกต่างกัน )

ตัวโหลดบาลานซ์ กระจายคำร้องขอไคลเอ็นต์ขาเข้าระหว่างกลุ่มของเซิร์ฟเวอร์ในแต่ละกรณีส่งคืนการตอบกลับจากเซิร์ฟเวอร์ที่เลือกไปยังไคลเอ็นต์ที่เหมาะสม


1
ดังนั้นคุณหมายถึง load balancer เป็นสิ่งจำเป็น 'reverse proxy' กับการกระจาย?
Anthony Kong

4
นี่คือการทำซ้ำโดยตรงของnginx.com/resources/glossary/reverse-proxy-vs-load-balancerพวกเขาขโมยคำตอบของคุณหรือคุณควรอ้างอิงแหล่งที่มาของคุณ
icc97
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.