В настоящее время у меня есть 4 сервера веб-приложений (работающих в приложении) в Rackspace, которые находятся за балансировщиком нагрузки (в Rackspace). Перед балансировщиком нагрузки. Само приложение умеренно использует кеширование, поэтому я знаю, что его можно немного улучшить.
Моя текущая архитектура:
RS Load Balancer (SSL Termination) -> 4 Web Servers (Apache) -> MySql
Эта установка была создана до меня, и теперь у меня есть возможность немного навести порядок, поэтому я думал либо об этом:
Varnish -> HAProxy (reverse proxy, LB, SSL Termination) -> 4 Web Servers (nginx) -> Redis / MySql
ИЛИ
Varnish -> nginx (reverse proxy, LB, SSL Termination) -> 4 Web Servers (nginx) -> Redis / MySql
ИЛИ лучше иметь Varnish за прокси и перед каждым веб-сервером вот так ?:
nginx or HAProxy -> 4 Varnish Servers -> 4 Web Servers (nginx) -> Redis / MySql
Я бы также переместил свои серверы в Linode, поскольку они, кажется, обеспечивают лучшую цену, и хотя я слышал смешанные отзывы об их балансировщиках нагрузки (называемых «NodeBalancers»), я слышал много хороших отзывов об их обслуживании и надежности в целом.
Мои вопросы:
Varnish не поддерживает SSL, поэтому команды Varnish-> nginx или Varnish-> HAProxy не будут работать с SSL.
С другой стороны, размещение чего-либо перед Varnish (кроме завершения SSL), вероятно, лишит вас преимуществ в производительности, которые обеспечивает Varnish.
Использование Varnish (кеша) для совместного использования оборудования и / или ОС с веб-сервером может быть, а может и не быть проблемой. Это во многом зависит от параметров обслуживаемого вами трафика. То же самое и с аппаратным масштабированием. Это также зависит от ваших целей.