소프트웨어 http로드 밸런서?


19

현재 사이트 / 웹 서비스 당 하나의 백엔드 서버 만 있습니다. 다양한로드 밸런서 앱 (Linux에서 실행되는 것)에 대한 사람들의 경험을 듣고 싶습니다.

어떤 것을 권 하시죠?

답변:


13

StackOverflow 팟 캐스트에피소드 27 에 따르면 , Reddit 사람들은 HAProxy 를 좋아하는 것 같습니다 . 다음 은 Amazon EC2와 함께 사용되는 HAProxy를 보여주는 간단한 자습서 입니다. HAProxy 웹 사이트 에서 훨씬 더 많은 정보를 찾을 수 있습니다 .


3
많은 프로덕션 서버에서 HAProxy를 사용하고 좋아합니다. 구성하기 쉽고 간단한 웹 인터페이스를 통해 상태와 통계를 실시간으로 확인할 수 있습니다. HAProxz의 첫 번째 인스턴스 설정에 도움이되는 스크린 캐스트는 [Signal vs Noise 블로그] [1] [1]에서 찾을 수 있습니다. 37signals.com/svn/posts/1073-nuts-bolts-haproxy
Wes Oldenbeuving

조작성 측면을 잊었습니다. 이것은 매우 좋은 소리입니다.
Mark Renouf

21

이 질문은 부하, 필요한 기능 등에 대한 특정 정보를 제공하지 않으므로 대답은 추측하기 쉽습니다.

파운드 는 중소 규모의 사이트에 적합합니다. 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가이를 수행 할 수 있습니다.



3

haproxy는 LVS와 같이 잘 작동합니다.

다음으로 wordpress.com은 nginx를 밸런서 / 프록시로 사용합니다.


2

우리는 생산에 LVS를 사용합니다. 운영 팀이 복잡하고 사악한 스크립트 세트로 관리합니다. 다소 영리한 맞춤형 시스템은 실제 서버에서 상태 및 성능 데이터를 발표하여로드 밸런서가 그에 따라 가중치를 설정할 수 있도록합니다.

물론 LVS는로드 밸런서라는 단일 장애 지점을 제공합니다 (이를 중복 설정하는 방법이 있음).

나는 이것이 설정하기에 너무 복잡하다고 생각하여 Windows NLB의 작동 방식을 느슨하게 기반으로 한 Fluffy Linux Cluster 를 작성했으며 (그것이 어떻게 작동하는지 잘 모르겠습니다) CLUSTERIP에서 영감을 얻었습니다.

프로덕션 환경에서는 사용하지 않지만 Fluffy는 단일 장애 지점 및 중앙 관리 노드 등이없는 합리적인 (최소한 5 개) 서버 수를로드 밸런싱 할 수 있습니다.


흠 : LVS, 사악한 스크립트, 오히려 영리한 맞춤형 시스템. 설정은 정확히 우리와 같습니다!
톰 앤더슨

2

나는 과거에 파운드 를 사용 했습니다. 빠르고 간단하며 최소한의주의가 필요합니다.



1

LVS를 사용하기로 결정한 경우로드 밸런싱 서버 계층의 가용성을 높이려면 Keepalived를 살펴보십시오. 나는 몇 달 동안 LVS와 함께 하트 비트 / 페이스 메이커를 사용해 왔으며, 간단한 HA LB 레이어로는 너무 복잡하고 때로는 불안정하다는 것을 알았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.