Я хотел бы сбалансировать нагрузку на свои серверы приложений, а также кэшировать ответы от них.
Я читал статью 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 поддерживает только по-круговой и случайный алгоритмы балансировки.
HAProxy, с другой стороны, построен для балансировки нагрузки и, следовательно, поддерживает:
Достаточно ли балансировки нагрузки Varnish зависит от ваших потребностей, но она определенно не заменила HAProxy.