Свой кластер с балансировщиком для веб-сайта Nginx Apache PHP MySQL (Master-Mast

replication nginx балансировщик

Пример создания высокодоступного решения для хостинга сайта.

На Amazon создаем два инстраса виртуальных машин и на каждом настраиваем следующее ПО:

  1. Nginx — в качестве front-end для веб сервера.

  2. Apache2 — в качестве back-end для веб сервера.

  3. Mysql — БД. Обе ноды настраиваеются в режиме master-master репликации, не забываем указать параметр разделяющий автоинкрементные поля по серверам, чтобы не было ошибок репликации.

  4. PHP

  5. csync2 — для синхронизации директорий веб приложения между нодами. Пример настойки

  6. incrontab — запускает выполнение команд или скрипта по изменению в указанной директории. Тип изменения можно задавать.

Далее на Amazon создаем балансировщик, куда добавляем необходимые ноды.

И затем домену прописываем в качестве CNAME DNS-имя балансера.

В итоге получаем как минимум два хоста, на которых полностью идентичные веб сайты.

При выходе из строя одной из нод - актуальный сайт будет доступен.