Bilanciamento del carico http del software?


19

Al momento abbiamo un solo server back-end per sito / servizio web. Sarei interessato ad ascoltare le esperienze delle persone con varie app di bilanciamento del carico (qualcosa che funziona su Linux).

Cosa raccomanderesti?

Risposte:


13

Secondo l' episodio 27 del podcast StackOverflow , i ragazzi di Reddit sembrano davvero apprezzare HAProxy . Ecco un breve tutorial che mostra l' HAProxy utilizzato con l'EC2 di Amazon . Puoi trovare molte più informazioni sul sito web HAProxy .


3
Uso HAProxy su numerosi server di produzione e lo adoro. È facile da configurare e ha anche una semplice interfaccia web per controllare lo stato e le statistiche in tempo reale. Uno screencast che mi ha aiutato a configurare la mia prima istanza di HAProxz può essere trovato sul [Signal versus Noise blog] [1] [1]: 37signals.com/svn/posts/1073-nuts-bolts-haproxy
Wes Oldenbeuving

Ho dimenticato l'aspetto della gestibilità. Sembra molto carino.
Mark Renouf,

21

La domanda non fornisce informazioni specifiche sul carico, le funzionalità necessarie ecc., Pertanto qualsiasi risposta è nella migliore delle ipotesi un'ipotesi.

Pound è una buona scelta per i siti di piccole / medie dimensioni. Offre supporto HTTPS e facilità di installazione.

HAproxy può ridimensionare in modo da saturare i tubi Ethernet 10G e offre un limite di connessione, ovvero l'invio di solo il numero di richieste simultanee a ciascun server back-end poiché è necessario gestire le istanze Apache children / Ruby on Rails.

nginx è ottimo come bilanciamento del carico allround e file server statico. Può eseguire la compressione HTTP, la riscrittura degli URL e la pubblicazione di file statici durante il bilanciamento del carico.

Apache è nella serie 2.2 anche un buon bilanciamento del carico. Può fare lo stesso di nginx, ma pone un carico maggiore sul server rispetto a nginx. Vale la pena esaminare se hai già familiarità con Apache e molto maturo.

Perlbal offre una semplice limitazione della connessione agli host back-end, richieste di multiplexing su connessioni HTTP persistenti e una configurazione semplice se si sta già utilizzando Perl.

Varnish cache è un proxy HTTP inverso, con supporto di bilanciamento del carico di base. Non è un ottimo bilanciamento del carico, ma in alcune situazioni la memorizzazione nella cache in memoria degli oggetti più richiesti può rimuovere un'alta percentuale degli accessi al server back-end e ha prestazioni eccezionali. Include ESI sono potenzialmente interessanti.

Non ne sono sicuro al 100%, ma Perlbal e nginx offrono supporto per cambiare la configurazione senza riavviare il bilanciamento del carico. Per i siti più grandi questo è fondamentale ed è una delle cose che i buoni apparecchi commerciali di bilanciamento del carico fanno bene.

Tutti i precedenti sono bilanciatori di carico di livello HTTP (livello 7). I servizi di bilanciamento del carico a livello TCP / IP hanno il potenziale per raggiungere un throughput più elevato, ma sono limitati in altri modi. L'autore di HAProxy ha scritto una buona panoramica leggibile dei metodi e dei problemi di bilanciamento del carico: http://1wt.eu/articles/2006_lb/

LVS è un sistema di bilanciamento del carico di livello TCP / IP ampiamente utilizzato. La maggior parte dei firewall può anche eseguire il bilanciamento del carico di base a livello IP, eseguendo l'hashing della richiesta in arrivo su una gamma di indirizzi IP back-end - almeno PF di OpenBSD e Cisco ASA e Juniper Netscreens possono farlo.



3

haproxy funziona bene come LVS.

FWIW, wordpress.com usa nginx come bilanciamento / proxy.


2

Usiamo LVS in produzione. È gestito dal nostro team operativo con una serie di script complessi e malvagi. Un sistema su misura piuttosto intelligente annuncia i dati di salute e prestazioni dei nostri server reali per consentire al bilanciamento del carico di impostare i pesi di conseguenza.

LVS ovviamente offre un singolo punto di errore: il bilanciamento del carico (ci sono modi per impostarli in modo ridondante).

Ho pensato che fosse troppo complicato da configurare, quindi ho scritto Fluffy Linux Cluster che si basava vagamente su come funziona Windows NLB (penso ... non sono sicuro di come funzioni) e anche ispirato a CLUSTERIP.

Non lo usiamo in produzione ma Fluffy può bilanciare il carico di un ragionevole (almeno 5) numero di server senza un singolo punto di errore e nessun nodo di gestione centrale ecc.


Hmm: LVS, script malvagi, sistemi su misura piuttosto intelligenti. La tua configurazione è esattamente come la nostra!
Tom Anderson,

2

Ho usato Pound in passato. È veloce, semplice e richiede un'attenzione minima.



1

Se decidi di utilizzare LVS, esaminerei anche Keepalived se renderai il tuo server a bilanciamento del carico altamente disponibile. Ho usato Heartbeat / Pacemaker con LVS per diversi mesi e l'ho trovato troppo complicato e talvolta instabile per un semplice livello di LB HA.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.