อะไรคือความแตกต่างระหว่าง HAProxy และ Ngnix ในโหมด reverse proxy?


คำตอบ:


5

อัพเดต 2019:

พวกเขาทั้งผลิตภัณฑ์ที่มั่นคงและเป็นผู้ใหญ่ HAProxy ทุ่มเทให้กับการทำโหลดบาลานซ์และดีกว่าในขณะที่ nginx เป็นเว็บเซิร์ฟเวอร์ที่สามารถทำหน้าที่เป็นโหลดบาลานซ์ได้

ทั้งสอง:

  • รองรับ HTTPS
  • สนับสนุน Websocket
  • ผลิตภัณฑ์ที่มีความเสถียรเป็นผู้ใหญ่และมีประสิทธิภาพมาก
  • สามารถจัดการการเชื่อมต่อ 10k ด้วยการจูนน้อยที่สุดหรือไม่มีการจูน

HAProxy:

  • โหลดบาลานซ์ TCP, TCP-SSL, HTTP และ HTTPS
  • ความยืดหยุ่นมากขึ้นในการตรวจสอบสุขภาพและเงื่อนไขการล้มเหลว
  • การแคชพื้นฐาน (v1.8 - 2017)
  • รูปแบบบันทึกที่ปรับแต่งได้เพื่อนำเข้าบันทึกการเข้าถึงไปยัง kibana / splunk / graylog
  • หน้าสถานะโดยละเอียดเพื่อดูคำขอที่ใช้งานและสถานะเซิร์ฟเวอร์
  • ตัวชี้วัดที่ส่งออกได้เพื่อรวมเข้ากับโซลูชันการตรวจสอบ (Graphite / Prometheus / Datadog)
  • มุ่งเน้นประสิทธิภาพสูง บ่งชี้ได้ดีขึ้นเพื่อจัดการการเชื่อมต่อ 100k หรือ 40 GbE อินเตอร์เฟส

Nginx:

  • HTTP และ HTTPS โหลดบาลานซ์ (TCP - UDP ในรุ่นจ่าย)
  • ความยืดหยุ่นมากขึ้นในการแคช
  • รูปแบบบันทึกที่ปรับแต่งได้เพื่อนำเข้าบันทึกการเข้าถึงไปยัง kibana / splunk / graylog
  • ไม่มีหน้าสถานะ (ฉบับจ่ายเงินเท่านั้น)
  • ไม่มีตัวชี้วัดที่ส่งออกได้ (ฉบับจ่ายเงินเท่านั้น)
  • สามารถให้บริการไฟล์ในเครื่อง
  • สามารถให้บริการแอปพลิเคชัน FastCGI (ไม่ใช่ CGI)

HAProxy เป็นซอฟต์แวร์โอเพนซอร์สฟรี พวกเขาทำเงินโดยการขายอุปกรณ์ฮาร์ดแวร์ด้วย HAProxy ที่ติดตั้งไว้ล่วงหน้า

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


42

HAProxy เป็นเพียง load balancer / reverse proxy เท่านั้น Nginx เป็นเว็บเซิร์ฟเวอร์ที่สามารถทำหน้าที่เป็นพร็อกซีย้อนกลับได้

นี่คือความแตกต่างบางประการ:

HAProxy:

  • ทำ TCP เช่นเดียวกับ HTTP proxying (เพิ่ม SSL จาก 1.5-dev12)
  • ตัวเลือกการ จำกัด อัตราที่มากกว่า
  • ผู้เขียนตอบคำถามที่นี่ใน Server Fault ;-)

Nginx :

  • รองรับ SSL โดยตรง
  • ยังเป็นแคชเซิร์ฟเวอร์

ที่ Stack Overflow เราใช้ HAProxy กับ nginx เป็นส่วนใหญ่ในการถ่าย SSL ดังนั้น HAProxy คือคำแนะนำของฉัน


11

ฉันใช้ nginx เพื่อ frontend HAProxy แต่สำหรับการเลิกใช้ SSL เท่านั้น

HAProxy เป็นตัวโหลดบาลานซ์ที่ปรับได้และจัดการได้มากกว่า (จากประสบการณ์ของฉัน)

ฉันยังรวมการเคลือบเงาสำหรับการแคชวัตถุคงที่ (เป็นแบ็กเอนด์เฉพาะของ HAProxy)

ดูคำถามเซิร์ฟเวอร์ข้อผิดพลาดนี้สำหรับข้อมูลเพิ่มเติม การสั่งซื้อ nginx / varnish / haproxy


3
การสร้าง HAProxy ใหม่ล่าสุดที่ไม่เสถียรในขณะนี้รองรับ SSL (อาจนำความต้องการของฉันออกเพื่อเรียกใช้ nginx)
Joel K

5

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

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