Добрый день. Я столкнулся с задачей обеспечения отказоустойчивости довольно-таки высоконагруженного проекта (nginx+php-fpm+mysql).
Вопрос в том, как этого добиться. На первый взглят приходят идеи дублирования всех трёх компонентов так:
nginx1 -> php-fpm1 -> mysql-master | keepalived / | nginx2 -> php-fpm2 mysql-slavekeekalived, думаю, будет работать в режиме с двумя ip-адресами (первый мастер на одном сервере, второй мастер на другом), которые будут оба записаны в A-записе DNS-сервера.
Вопросов несколько. Правильно ли я пытаюсь сделать или может быть лучше использовать другие варианты? Достаточно ли использовать два сервера, на которых будет по три виртуальных машины? Может сделать так, чтобы nginx обращался через upstrem к серверам php-fpm по очереди или только к своему? Для master и slave mysql можно тоже использовать keepalived? Как раздавать статику, которой довольно много (общее хранилище?), и как будут работать оба nginx с одним, например, nfs сервером?