привет, рисую схему серверов для теста, и вот думаю где поставить varnish.
раньше хорошо работала схема:
USERS <->
([VARNISH:80]{NGINX:8080}[APC]php-fpm:9000{memcached}[DB]
)
както так…
но нагрузка стала расти от количества пользователей соответственно, и решил я вставить балансер и разбить все на 3-4 сервера + сервер под базу данных.
тоесть встал вопрос как расположить кеш и веб сервера после балансера.
1. USERS <-> Nginx LBS <-> (Varnish|Webserver1) <-> [Webserver2] <-> [DB]
2. USERS <-> Nginx LBS <-> (Varnish1|Webserver1) <-> (Varnish2|Webserver2) <-> [DB]
3. USERS <-> Nginx LBS <-> (Varnish) <-> [Webserver1] <-> [Webserver2] <-> [DB]
можно настроить балансер чтобы равномерно распределял юзеров и цеплял их каждый к одному серверу только.
и потом чтото типа
upstream varnish {
server Varnish;
}
upstream webserver {
ip_hash;
server Webserver1;
server Webserver2;
}
location /
proxy_pass
varnish;
if error 40x 50x = @webserver
location @webserver
proxy_pass
webserver;
илиже воткнуть варниш впереди затем нжинкс и баланс на два сервера…
- ({NGINX:80}[APC]php-fpm:9000{memcached}) -
USERS <-> [VARNISH] <-> {NGINX LBS} | | <-> [DB]
- ({NGINX:80}[APC]php-fpm:9000{memcached}) -
или сделать как в самом первом варианте только вытинуть бд?
- ([VARNISH:80]{NGINX:8080}[APC]php-fpm:9000{memcached}) -
USERS <-> {NGINX LBS} | | <-> [DB]
- ([VARNISH:80]{NGINX:8080}[APC]php-fpm:9000{memcached}) -
кто что скажет?