Oprogramowanie równoważenia obciążenia HTTP?

19

W tej chwili mamy tylko jeden serwer zaplecza na witrynę / usługę internetową. Chciałbym usłyszeć doświadczenia ludzi z różnymi aplikacjami równoważącymi obciążenie (coś, co działa w systemie Linux).

Co byś polecił?

Mark Renouf
źródło

Odpowiedzi:

13

Zgodnie z odcinka 27 z podcastu StackOverflow , faceci Reddit naprawdę wydają się jak HAProxy . Oto krótki samouczek pokazujący, że HAProxy jest używany z EC2 Amazon . Możesz znaleźć znacznie więcej informacji na stronie internetowej HAProxy .

John Siracusa
źródło
3
Używam HAProxy na wielu serwerach produkcyjnych i uwielbiam go. Jest łatwy w konfiguracji, a nawet ma prosty interfejs internetowy, aby sprawdzać jego status i statystyki w czasie rzeczywistym. Screencast, który pomógł mi skonfigurować moją pierwszą instancję HAProxz, można znaleźć na [blogu Sygnał kontra hałas] [1] [1]: 37signals.com/svn/posts/1073-nuts-bolts-haproxy
Wes Oldenbeuving
Zapomniałem o aspekcie zarządzania. Brzmi bardzo ładnie.
Mark Renouf
21

Pytanie nie zawiera szczegółowych informacji o obciążeniu, potrzebnych funkcjach itp., Więc taka odpowiedź jest w najlepszym razie domysłem.

Funt jest dobrym wyborem dla mniejszych / średnich stron. Oferuje wsparcie HTTPS i łatwą konfigurację.

HAproxy może przeskalować do nasycenia potoków Ethernet 10G i oferuje ograniczenie połączeń, tj. Wysyłanie tylko liczby równoczesnych żądań do każdego serwera zaplecza, ponieważ masz do obsługi instancje dzieci Apache / Ruby on Rails.

nginx jest świetny jako wszechstronny moduł równoważenia obciążenia i statyczny serwer plików. Może wykonywać kompresję HTTP, przepisywanie adresów URL i serwowanie plików statycznych podczas równoważenia obciążenia.

Apache jest w serii 2.2 również całkiem dobrym narzędziem równoważenia obciążenia. Może robić to samo co nginx, ale nakłada większe obciążenie na serwer niż nginx. Warto sprawdzić, czy znasz już Apache i jesteś bardzo dojrzały.

Perlbal oferuje łatwe ograniczanie połączeń do hostów wewnętrznych, multipleksowanie żądań przez trwałe połączenia HTTP oraz łatwą konfigurację, jeśli już używasz Perla.

Pamięć podręczna lakieru to odwrotny serwer proxy HTTP z podstawową obsługą równoważenia obciążenia. Nie jest to świetny moduł równoważenia obciążenia, ale w niektórych sytuacjach buforowanie w pamięci najbardziej pożądanych obiektów w pamięci może usunąć duży procent trafień serwera zaplecza i ma doskonałą wydajność. ESI obejmuje są potencjalnie interesujące.

Nie jestem w 100% pewien, ale Perlbal i nginx oferują pewne wsparcie dla zmiany konfiguracji bez ponownego uruchamiania modułu równoważenia obciążenia. W przypadku większych witryn jest to bardzo ważne i jest to jedna z rzeczy, które dobrze radzą sobie w komercyjnych urządzeniach równoważących obciążenie.

Wszystkie powyższe są równoważnikami obciążenia na poziomie HTTP (warstwa 7). Elementy równoważące obciążenie na poziomie TCP / IP mogą osiągnąć wyższą przepustowość, ale są ograniczone na inne sposoby. Autor HAProxy napisał dobry, czytelny przegląd metod i problemów związanych z równoważeniem obciążenia: http://1wt.eu/articles/2006_lb/

LVS to szeroko stosowany moduł równoważenia obciążenia na poziomie TCP / IP. Większość zapór ogniowych może również wykonywać podstawowe równoważenie obciążenia na poziomie IP, mieszając przychodzące żądanie z szeregiem adresów IP zaplecza - przynajmniej PF i Cisco ASA i Juniper Netscreen mogą to zrobić.

Jesper M.
źródło
3

haproxy działa dobrze, podobnie jak LVS.

FWIW, wordpress.com używa nginx jako swojego balancera / proxy.

Jauder Ho
źródło
2

Używamy LVS w produkcji. Jest zarządzany przez nasz zespół operacyjny za pomocą zestawu złożonych i złych skryptów. Dość sprytny system na zamówienie ogłasza dane dotyczące zdrowia i wydajności z naszych serwerów rzeczywistych, aby umożliwić modułowi równoważenia obciążenia odpowiednio ustawić wagi.

LVS oczywiście daje jeden punkt awarii - moduł równoważenia obciążenia (istnieją sposoby na ich redundancję).

Pomyślałem, że jest to zbyt skomplikowane do skonfigurowania, więc napisałem Fluffy Linux Cluster, który był luźno oparty na tym, jak działa Windows NLB (myślę ... Nie jestem pewien, jak to działa), a także zainspirowany CLUSTERIP.

Nie używamy go w produkcji, ale Fluffy może zrównoważyć obciążenie rozsądną (co najmniej 5) liczbą serwerów bez pojedynczego punktu awarii i bez centralnego węzła zarządzania itp.

MarkR
źródło
Hmm: LVS, złe skrypty, raczej sprytne systemy na zamówienie. Twoja konfiguracja jest dokładnie taka jak nasza!
Tom Anderson
2

W przeszłości korzystałem z funta . Jest szybki, prosty i wymaga minimalnej uwagi.

mryan1
źródło
1

Jestem wielkim fanem wielowarstwowych LB Zeusa ZXTM - kliknij TUTAJ

Siekacz 3
źródło
1

Jeśli zdecydujesz się na LVS, zajrzałbym również do Keepalived, jeśli chcesz, aby twoja warstwa serwera równoważenia obciążenia była wysoce dostępna. Używam Heartbeat / Pacemaker z LVS od kilku miesięcy i stwierdziłem, że jest to zbyt skomplikowane i czasami niestabilne dla prostej warstwy HA LB.

Aaron Bush
źródło