Каковы различия между HAProxy и Ngnix в режиме обратного прокси?

Ответы:

5

2019 обновление:

Это стабильные и зрелые продукты. HAProxy предназначен для балансировки нагрузки и лучше в этом, тогда как nginx является веб-сервером, который может выступать в качестве балансировщика нагрузки.

И то и другое:

  • Поддержка HTTPS
  • Поддержка веб-сокетов
  • Стабильные, зрелые и очень эффективные продукты
  • Может обрабатывать 10 тыс. Соединений с минимальной настройкой или без настройки

HAProxy:

  • Балансировка нагрузки TCP, TCP-SSL, HTTP и HTTPS
  • Больше гибкости при проверке работоспособности и аварийного переключения
  • Базовое кеширование (v1.8 - 2017)
  • Настраиваемый формат журнала, чтобы импортировать журналы доступа в kibana / splunk / graylog
  • Подробная страница состояния, чтобы увидеть активные запросы и состояние серверов
  • Экспортируемые метрики для интеграции с решениями для мониторинга (графит / прометей / данные)
  • Более ориентированный на высокую производительность. Лучше указывать на обработку 100 тыс. Соединений или 40 GbE-интерфейсов.

Nginx:

  • Балансировка нагрузки HTTP и HTTPS (TCP - UDP в платной версии)
  • Больше гибкости при кэшировании
  • Настраиваемый формат журнала, чтобы импортировать журналы доступа в kibana / splunk / graylog
  • Нет страницы статуса (только платная версия)
  • Нет экспортируемых метрик (только платная версия)
  • Может обслуживать локальные файлы
  • Может обслуживать приложения FastCGI (не CGI)

HAProxy - это бесплатное программное обеспечение с полностью открытым исходным кодом. Они зарабатывают деньги, продавая аппаратное устройство с предустановленной HAProxy.

Nginx является открытым ядром, и многие функции доступны только в платной версии. Примечательно, что ему не хватает страницы состояния и показателей мониторинга, что является большим НЕТ НЕТ для работы балансировщика нагрузки.

user5994461
источник
42

HAProxy - это просто балансировщик нагрузки / обратный прокси. Nginx - это веб-сервер, который также может работать как обратный прокси-сервер.

Вот некоторые отличия:

HAProxy:

  • Поддерживает ли TCP и HTTP-прокси (SSL добавлен с 1.5-dev12)
  • Больше вариантов ограничения скорости
  • Автор отвечает на вопросы здесь о сбое сервера ;-)

Nginx :

  • Поддерживает SSL напрямую
  • Также есть кеширующий сервер

В Stack Overflow мы в основном используем HAProxy с nginx для разгрузки SSL, поэтому HAProxy - моя рекомендация.

Кайл Брандт
источник
11

Я использую nginx для внешнего интерфейса HAProxy, но только для завершения SSL.

HAProxy - гораздо более настраиваемый и управляемый балансировщик нагрузки (по моему опыту).

Я также включил Varnish для кэширования статических объектов. (как особый бэкэнд HAProxy)

Смотрите этот вопрос о сбое сервера для получения дополнительной информации. Заказ nginx / лака / haproxy

Джоэл К
источник
3
Новейшие (сентябрь 2012 г.) нестабильные сборки HAProxy теперь поддерживают SSL. (потенциально убирая мою необходимость запустить nginx)
Джоэл К
5

При необходимости только для балансировки нагрузки лучше прокси HA. Но сочетание nginix и HA-прокси может быть более полезным, поскольку nginix быстро предоставляет статический контент, он будет обслуживать все запросы статических данных, а затем отправлять все запросы HA-прокси, которые служат для балансировки нагрузки, и отправлять запросы на веб-сервер для обслуживания. запрос по балансировке нагрузки.

Mitesh
источник