Назад | Перейти на главную страницу

Нужен ли еще HAProxy, когда Varnish может действовать как балансировщик нагрузки?

Я хотел бы сбалансировать нагрузку на свои серверы приложений, а также кэшировать ответы от них.

Я читал статью 2012 года на сайте HAProxy, которая должна была устранить путаницу между HAProxy и Varnish:

http://blog.haproxy.com/2012/07/04/haproxy-and-varnish-comparison/

В этой статье в основном говорится, что HAProxy - это только балансировщик нагрузки обратного прокси (без кеша), а Varnish - это кеш обратного прокси (без балансировки нагрузки), поэтому они дополняют друг друга.

Но сегодня я вижу в документации Varnish, что он также выполняет балансировку нагрузки:

https://www.varnish-cache.org/trac/wiki/LoadBalancing

Поэтому я могу только догадываться, что эта функция была введена с 2012 года и теперь она напрямую конкурирует с HAProxy с точки зрения балансировки нагрузки.

Теперь, учитывая, что мне нужен обратный прокси-кеш + балансировщик нагрузки, правда ли, что я могу использовать один сервер только с Varnish, который будет делать и то, и другое? Возможны ли какие-либо ограничения по сравнению с типичной настройкой HAProxy <-> Varnish?

Лак не поддерживает SSL

Запуск сайта / службы на SSL является необходимостью для чего-то полусерьезного, так что это одна из причин использовать haproxy, который выполнит завершение SSL за вас.

Хотя и HAProxy, и Varnish жестяная банка load-balance, только один из них построен для этого.

Вы можете просто использовать Apache для своих целей, поскольку он также может прокси и кешировать, но это вряд ли оптимальное решение.

На мой взгляд, лучше всего использовать каждый продукт по назначению.

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

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

Таким образом вы можете:

  • Легко обойти Varnish для обновлений или тестирования
  • Масштабируйте любой уровень до большего количества ящиков по мере увеличения вашей нагрузки
  • Используйте каждое программное обеспечение по своему основному назначению

Как и в большинстве программ, реализующих базовую балансировку нагрузки, Varnish поддерживает только по-круговой и случайный алгоритмы балансировки.

HAProxy, с другой стороны, построен для балансировки нагрузки и, следовательно, поддерживает:

  • круговой (с взвешиванием)
  • статический циклический подход
  • минимум связей
  • первый доступный сервер
  • ведение на основе источника
  • ведение на основе URI
  • сегментирование на основе параметра URL
  • ведение на основе HTTP-заголовка
  • ведение на основе файла cookie

Достаточно ли балансировки нагрузки Varnish зависит от ваших потребностей, но она определенно не заменила HAProxy.