ฉันไม่ชัดเจนเกี่ยวกับความแตกต่างระหว่าง Load Balancer และ Reverse Proxy พวกเขาทั้งสองดูเหมือนจะมีพฤติกรรมเหมือนกัน: การกระจายคำขอขาเข้าไปยังเซิร์ฟเวอร์แบ็กเอนด์
ฉันไม่ชัดเจนเกี่ยวกับความแตกต่างระหว่าง Load Balancer และ Reverse Proxy พวกเขาทั้งสองดูเหมือนจะมีพฤติกรรมเหมือนกัน: การกระจายคำขอขาเข้าไปยังเซิร์ฟเวอร์แบ็กเอนด์
คำตอบ:
ความสับสนของคุณมีเหตุผล - พวกเขามักจะเป็นสิ่งเดียวกัน แต่ไม่เสมอไป. เมื่อคุณอ้างถึง load balancer คุณกำลังอ้างถึงสิ่งที่เจาะจงมาก - เซิร์ฟเวอร์หรืออุปกรณ์ที่ทำหน้าที่ร้องขอขาเข้าข้ามเว็บเซิร์ฟเวอร์สองเครื่องขึ้นไปเพื่อกระจายโหลด พร็อกซีย้อนกลับอย่างไรก็ตามโดยทั่วไปมีคุณสมบัติจำนวนเท่าใดก็ได้:
โหลดบาลานซ์: ตามที่กล่าวไว้ข้างต้น
การแคช: สามารถแคชเนื้อหาจากเว็บเซิร์ฟเวอร์ด้านหลังและลดภาระบนเว็บเซิร์ฟเวอร์และส่งคืนเนื้อหาสแตติกบางส่วนกลับไปยังผู้ร้องขอโดยไม่ต้องรับข้อมูลจากเว็บเซิร์ฟเวอร์
ความปลอดภัย: สามารถป้องกันเว็บเซิร์ฟเวอร์ได้โดยป้องกันการเข้าถึงโดยตรงจากอินเทอร์เน็ต มันอาจทำผ่านวิธีง่าย ๆ เพียงแค่ทำให้เว็บเซิร์ฟเวอร์ยุ่งเหยิงหรืออาจมีส่วนประกอบเพิ่มเติมที่ใช้งานได้จริงซึ่งตรวจสอบคำขอขาเข้าที่กำลังค้นหาโค้ดอันตราย
การเร่งความเร็ว SSL: เมื่อใช้ SSL; มันอาจทำหน้าที่เป็นจุดสิ้นสุดสำหรับเซสชัน SSL เหล่านั้นเพื่อให้ปริมาณงานของการจัดการกับการเข้ารหัสถูก offloaded จากเว็บเซิร์ฟเวอร์
ฉันคิดว่านี่จะครอบคลุมส่วนใหญ่ แต่อาจมีคุณสมบัติอื่น ๆ ที่ฉันพลาดไป แน่นอนว่าไม่ใช่เรื่องแปลกที่จะเห็นอุปกรณ์หรือชิ้นส่วนของซอฟต์แวร์ที่วางตลาดเป็นโหลดบาลานซ์ / พร็อกซีย้อนกลับเนื่องจากคุณลักษณะดังกล่าวมักจะรวมเข้าด้วยกัน
นอกจากนี้พร็อกซีย้อนกลับจะใช้กับเว็บเซิร์ฟเวอร์
โหลดบาลานเซอร์สามารถจัดการกับโปรโตคอลอื่น ๆ ได้มากมาย ในขณะที่เว็บ (HTTP) เป็นแนวคิดที่ยิ่งใหญ่ทุกวันนี้สิ่งต่าง ๆ เช่น DNS, เมล (SMTP, IMAP) ฯลฯ สามารถโหลดได้อย่างสมดุลเช่นกัน ทุกวันนี้เมื่อคนส่วนใหญ่คิดว่า "อินเทอร์เน็ต" หรือ "เครือข่าย IP" ที่พวกเขาคิดถึงเว็บ มีอีกหลายสิ่งที่อาจทำให้คลุมเครือมากขึ้น
ในขณะที่ผลลัพธ์สุทธิ (การกระจายการร้องขอระหว่างเซิร์ฟเวอร์) เหมือนกันระหว่าง load balancer และ reverse proxies ต่างกันความแตกต่างคือวิธีที่ใช้ในการกระจายคำร้องขอ
ตัวโหลดบาลานเซอร์บางตัวสร้างความสมดุลของทราฟฟิกโดยใช้ DNS แก้ไขชื่อเดียวกันกับ IP ที่แตกต่างกันในการปัดเศษรอบเพื่อเปลี่ยนเส้นทางคำขออย่างมีประสิทธิภาพ สิ่งนี้มักจะมีประโยชน์เมื่อโหลดการร้องขอสมดุลระหว่างศูนย์ข้อมูลหรือตำแหน่งทางกายภาพอื่น ๆ นี่เป็นตัวเลือกที่ไม่ดีหากคุณต้องการ "ทันใจ" ล้มเหลวเนื่องจากคุณอยู่ในความเมตตาของไคลเอนต์เซิร์ฟเวอร์ DNS ของคุณเพื่อให้เกียรติกับ TTL ที่คุณให้ไว้ GSS ของ Cisco (ตัวเลือกไซต์ทั่วโลก) เป็นตัวอย่างที่ดีของการทำโหลดบาลานซ์บน DNS
ตัวโหลดบาลานซ์อื่นทำงานโดยการเขียนส่วนหัวของแพ็กเก็ตใหม่ที่กำหนดเป็น IP เสมือนไปยัง IP จริงของเซิร์ฟเวอร์ในฟาร์ม ซึ่งช่วยให้การทำโหลดบาลานซ์แบบเรียลไทม์และเกิดความล้มเหลวในทันที ตัวอย่างนี้จะเป็น CSM ของ Cisco (Content Switching Module)
โปรดทราบว่าในตัวอย่างข้างต้นมีการสนทนา TCP ระหว่างไคลเอนต์และเซิร์ฟเวอร์
พร็อกซีย้อนกลับทำงานโดยการยอมรับคำขอในนามของเว็บเซิร์ฟเวอร์จากนั้นสะท้อนการร้องขอนั้นไปยังเว็บเซิร์ฟเวอร์และส่งกลับไปยังไคลเอนต์ทางเลือกการแคชผลลัพธ์ควรเป็นคำขอที่คล้ายกัน
โปรดทราบว่าไคลเอนต์ไม่เคยสร้างการเชื่อมต่อกับเว็บเซิร์ฟเวอร์ ค่อนข้างการสนทนาระหว่างพร็อกซีและลูกค้าอย่างเคร่งครัด
ตัวโหลดบาลานซ์สามารถปรับสมดุลทราฟฟิกจากเลเยอร์ 3 ขึ้นไปจนถึงเลเยอร์ 7 แต่พร็อกซีย้อนกลับเป็น HTTP เฉพาะ
พร็อกซีกลับยอมรับการร้องขอจากลูกค้าที่ส่งต่อไปยังเซิร์ฟเวอร์ที่สามารถตอบสนองความมันและผลตอบแทนการตอบสนองของเซิร์ฟเวอร์ไปยังลูกค้า (ซึ่งหมายความว่าเซิร์ฟเวอร์หลังพร็อกซีย้อนกลับสามารถสื่อสารด้วยคุณสมบัติที่แตกต่างกันบ้างโปรโตคอลหรือโปรโตคอลที่แตกต่างกัน )
ตัวโหลดบาลานซ์ กระจายคำร้องขอไคลเอ็นต์ขาเข้าระหว่างกลุ่มของเซิร์ฟเวอร์ในแต่ละกรณีส่งคืนการตอบกลับจากเซิร์ฟเวอร์ที่เลือกไปยังไคลเอ็นต์ที่เหมาะสม