Câu trả lời:
(Tôi sẽ không đi vào "cách tốt nhất để cân bằng tải", vì đó rõ ràng là tình huống cụ thể.)
Cả HAProxy và nginx đều là những lựa chọn tuyệt vời cho các bộ cân bằng tải HTTP nguồn mở trên Unix. Ở cấp độ rất cao, những ưu và nhược điểm xuất hiện đầu tiên là IMHO:
nginx:
HAProxy:
Nhưng như đã nói, cả hai đều là lựa chọn tuyệt vời. Chọn một trong những bạn cảm thấy thoải mái nhất.
Điều đó thực sự phụ thuộc vào những gì bạn muốn làm.
Nginx có thể phân chia tải giữa các cụm, cũng như định tuyến các miền cụ thể đến các cụm khác nhau. Hiệu suất nginx của chúng tôi đã được thỏa đáng. Nó giống như một bộ định tuyến tải.
Đối với haproxy tôi biết nó truy vấn trạng thái máy chủ liên tục và sẽ kiểm tra máy chủ trước khi hướng lưu lượng truy cập đến nó. Nó cũng có một giao diện nơi bạn có thể xem số liệu thống kê. nginx tôi không nghĩ làm điều này trên một trong hai điểm.
Chúng tôi sử dụng nginx như một máy chủ web và rất hài lòng với nó. Tôi sẽ không bao giờ quay trở lại Apache. Nhược điểm là nếu bạn có ý định chạy PHP; nó đòi hỏi một số trò đùa hóc búa để làm cho nó hoạt động theo fastCGI.
Đừng quên đặt Varnish vào vị trí cho bộ nhớ đệm! Bước đơn giản đó giải quyết rất nhiều vấn đề của các trang web bị Slashdiated / Fireballed!
Tôi không phải là chuyên gia về vấn đề này, nhưng theo tôi biết HAProxy có hiệu suất tốt hơn và có thể cấu hình nhiều hơn trong cách cân bằng tải.
Bây giờ tôi có thể đưa ra một danh sách so sánh và điểm chuẩn cho bạn nhưng tôi sẽ chỉ liên kết các kết quả google thay vì https://encrypted.google.com/search?q=nginx+vs+haproxy