Risposte:
(Non entrerò nel "modo migliore per bilanciare il carico", dal momento che è ovviamente specifico per la situazione.)
Sia HAProxy che nginx sono scelte eccellenti per i bilanciatori di carico HTTP open source su Unix. A un livello molto alto, i pro e i contro che mi vengono in mente per primi sono IMHO:
nginx:
HAProxy:
Ma come detto, entrambi sono scelte eccellenti. Scegli quello con cui ti senti più a tuo agio.
Dipende davvero da cosa vuoi fare.
Nginx può dividere il carico tra i cluster, nonché instradare domini specifici a cluster diversi. Le nostre prestazioni nginx sono state soddisfacenti. È più simile a un router di carico.
Per haproxy so che interroga costantemente lo stato del server e controllerà il server prima di indirizzare il traffico verso di esso. Ha anche un'interfaccia in cui è possibile visualizzare le statistiche. nginx Non credo lo faccia su nessuno dei due punteggi.
Usiamo nginx come webserver e ne siamo molto contenti. Non tornerò mai più ad Apache. Il rovescio della medaglia è se sei intenzionato a eseguire PHP; richiede alcuni hacker-jiggery per farlo funzionare in fastCGI.
Non dimenticare di mettere Varnish in posizione per la memorizzazione nella cache! Questo semplice passaggio risolve molti dei problemi dei siti Slashdotted / Fireballed!
Non sono un esperto in questo, ma per quanto ne so HAProxy ha prestazioni migliori ed è più configurabile in come fa il bilanciamento del carico.
Ora potrei lanciarti un elenco di confronti e benchmark ma collegherò semplicemente i risultati di Google invece https://encrypted.google.com/search?q=nginx+vs+haproxy