답변:
StackOverflow 팟 캐스트 의 에피소드 27 에 따르면 , Reddit 사람들은 HAProxy 를 좋아하는 것 같습니다 . 다음 은 Amazon EC2와 함께 사용되는 HAProxy를 보여주는 간단한 자습서 입니다. HAProxy 웹 사이트 에서 훨씬 더 많은 정보를 찾을 수 있습니다 .
이 질문은 부하, 필요한 기능 등에 대한 특정 정보를 제공하지 않으므로 대답은 추측하기 쉽습니다.
파운드 는 중소 규모의 사이트에 적합합니다. HTTPS 지원 및 쉬운 설정을 제공합니다.
HAproxy 는 10G 이더넷 파이프를 포화 시키도록 확장 할 수 있으며 연결 제한을 제공합니다. 즉, Apache 하위 / Ruby on Rails 인스턴스를 처리 할 때 각 백엔드 서버에 동시 요청 수만 전송합니다.
nginx 는 만능로드 밸런서 및 정적 파일 서버로 훌륭합니다. 로드 밸런싱을 수행하는 동안 HTTP 압축, URL 재 작성 및 정적 파일 제공을 수행 할 수 있습니다.
아파치 는 2.2 시리즈로 꽤 좋은로드 밸런서입니다. nginx와 거의 동일하지만 nginx보다 서버에 더 많은 부하를줍니다. 이미 아파치에 익숙하고 성숙한 지 살펴볼 가치가 있습니다.
Perlbal 은 백엔드 호스트에 대한 쉬운 연결 제한, 지속적인 HTTP 연결을 통한 멀티플렉싱 요청 및 이미 Perl을 사용중인 경우 쉬운 설정을 제공합니다.
바니쉬 캐시 는 기본로드 밸런싱 지원 기능이있는 리버스 HTTP 프록시입니다. 로드 밸런서가 크지는 않지만 일부 상황에서 대부분의 요청 된 객체에 대한 메모리 내 캐싱은 백엔드 서버 적중률을 크게 제거 할 수 있으며 뛰어난 성능을 제공합니다. ESI 포함은 잠재적으로 흥미 롭습니다.
100 % 확신 할 수는 없지만 Perlbal과 nginx는로드 밸런서를 다시 시작하지 않고도 구성을 변경할 수 있도록 지원합니다. 더 큰 규모의 사이트에서는 이것이 중요하며, 이는 상용 상용로드 밸런서 어플라이언스가 잘 수행하는 것 중 하나입니다.
위의 모든 것은 HTTP 레벨 (계층 7)로드 밸런서입니다. TCP / IP 레벨로드 밸런서는 더 높은 처리량에 도달 할 가능성이 있지만 다른 방식으로 제한됩니다. HAProxy 작성자는로드 밸런싱 방법 및 문제에 대한 읽기 쉬운 읽기 개요를 작성했습니다. http://1wt.eu/articles/2006_lb/
LVS 는 널리 사용되는 TCP / IP 레벨로드 밸런서입니다. 또한 대부분의 방화벽은 다양한 백엔드 IP 주소를 통해 들어오는 요청을 해시함으로써 IP 수준에서 기본로드 밸런싱을 수행 할 수 있습니다. 최소한 OpenBSD의 PF와 Cisco ASA 및 Juniper Netscreens가이를 수행 할 수 있습니다.
우리는 생산에 LVS를 사용합니다. 운영 팀이 복잡하고 사악한 스크립트 세트로 관리합니다. 다소 영리한 맞춤형 시스템은 실제 서버에서 상태 및 성능 데이터를 발표하여로드 밸런서가 그에 따라 가중치를 설정할 수 있도록합니다.
물론 LVS는로드 밸런서라는 단일 장애 지점을 제공합니다 (이를 중복 설정하는 방법이 있음).
나는 이것이 설정하기에 너무 복잡하다고 생각하여 Windows NLB의 작동 방식을 느슨하게 기반으로 한 Fluffy Linux Cluster 를 작성했으며 (그것이 어떻게 작동하는지 잘 모르겠습니다) CLUSTERIP에서 영감을 얻었습니다.
프로덕션 환경에서는 사용하지 않지만 Fluffy는 단일 장애 지점 및 중앙 관리 노드 등이없는 합리적인 (최소한 5 개) 서버 수를로드 밸런싱 할 수 있습니다.