Я намереваюсь запустить несколько крошечных «физических облачных» серверов ARM за балансировщиком нагрузки (либо HAProxy, либо сам nginx), но я не могу решить, куда поместить Varnish во всей этой неразберихе.
Я могу иметь его на каждом экземпляре, выполняя работу локально, но, видя, что содержимое будет таким же, это кажется пустой тратой.
Я также могу установить его в том же экземпляре, что и балансировщик нагрузки, но возникает вопрос - перед ним или позади него? Для меня, по логике, он должен быть впереди - если он может получить страницу из кеша, нет необходимости беспокоить балансировщик нагрузки запросом. И я даже могу удалить балансировщик нагрузки и использовать Varnish для циклического перебора между экземплярами серверной части.
Но я нашел множество различных решений в Интернете, без каких-либо (недавних) тестов или плюсов / минусов любого из вариантов, поэтому я не могу решить, есть ли проблемы с моим "идеальным" сценарием (Varnish как балансировщик нагрузки и механизм кеширования) .
Итак - возможно ли использовать Varnish в качестве балансировщика нагрузки? Если нет, следует ли положить его перед самим балансировщиком нагрузки или за ним?
Кеши обычно идут перед балансировщиком нагрузки, поскольку балансировщик нагрузки существует для смягчения медленных серверов приложений, а кеш вообще стремится смягчить работу сервера приложений. Обратной стороной является то, что кластер Raspi-esque может не иметь большого количества ресурсов для поддержки больших кешей.
Время нанесения лака позади Балансировщик нагрузки используется, когда вам необходимо распределить кэш по нескольким машинам либо для обеспечения отказоустойчивости, либо для снижения требований к хранилищу. Например, балансировщик нагрузки, настроенный на хэш на основе URL-адреса запроса, может гарантировать, что все запросы для «кота» отправляются на машину A, а запросы для «собаки» - на машину B, если вы хотите полагаться на большой кеш, но не может вместить все это на одном из крошечных устройств ARM.