Ответы:
(Я не собираюсь говорить о «лучшем способе балансировки нагрузки», поскольку это, очевидно, зависит от конкретной ситуации.)
И HAProxy, и nginx - отличный выбор для балансировщиков нагрузки HTTP с открытым исходным кодом в Unix. На очень высоком уровне, плюсы и минусы, которые приходят в голову, являются ИМХО:
Nginx:
HAProxy:
Но, как сказано, оба являются отличным выбором. Выберите тот, который вам удобнее всего.
Это действительно зависит от того, что вы хотите сделать.
Nginx может распределять нагрузку между кластерами, а также направлять определенные домены в разные кластеры. Наша производительность nginx была удовлетворительной. Это больше похоже на загрузочный маршрутизатор.
Для haproxy я знаю, что он постоянно запрашивает состояние сервера и будет проверять сервер, прежде чем направлять трафик на него. Он также имеет интерфейс, где вы можете просматривать статистику. nginx Я не думаю, что делает это на любой счет.
Мы используем nginx в качестве веб-сервера и очень довольны им. Я никогда не вернусь к Apache. Недостатком является то, что если вы намереваетесь запустить PHP; для работы в fastCGI требуется некоторая хакерская работа.
Не забудьте поставить Varnish на место для кэширования! Этот простой шаг решает множество проблем, связанных с сайтами Slashdotted / Fireballed!
Я не эксперт в этом вопросе, но насколько я знаю, HAProxy имеет лучшую производительность и более настраиваемый способ балансировки нагрузки.
Теперь я могу добавить вам список сравнений и тестов, но вместо этого я просто свяжу результаты Google: https://encrypted.google.com/search?q=nginx+vs+haproxy