Назад | Перейти на главную страницу

Как реплицировать файлы между двумя отдельными машинами apache в двунаправленном режиме

Как реплицировать / var / www / html / между двумя отдельными машинами, на которых есть отдельное хранилище на жестком диске, на котором работают веб-серверы Apache. Я планировал настроить балансировку нагрузки между этими двумя серверами Apache и настроил Nginx в качестве внешнего интерфейса для этих двух серверов Apache, файлы должны синхронизироваться с сервера 1 на сервер 2 и наоборот.

Управление кодом и контентом, их продвижение и развертывание на всех серверах - гораздо лучшее решение для настройки двусторонней синхронизации. Рассмотрите возможность развертывания ресурсов сервера на всех серверах в пуле вместо обновления на одном сервере, рассчитывая на синхронизацию / репликацию или управляя файловой системой общего доступа.

Это позволяет вам управлять своим контентом / кодом отдельно, чтобы вы могли просматривать / управлять / откатывать изменения. Незначительное редактирование или удаление вам не повредит.

Это также позволит вам развернуть дополнительные узлы и помочь с развертыванием с помощью повторяемого процесса.

Самая простая итерация состоит в том, чтобы ваши веб-серверы периодически выполняли git pull конкретной ветки вашего репо.

При этом сделайте git pull в промежуточное расположение и rsync в каталог httphome. Это позволит вам исключить такие вещи, как репо .git каталог и файлы README.

Например:

rsync -art --delete --delete-excluded --exclude='.git/' --exclude='README*' #{repo_path}/ #{site_path}

Что касается использования NGINX для работы с Apache, ЗАЧЕМ? Что вы надеетесь получить от этого? Оба они являются веб-серверами, которые могут выполнять обратный прокси-сервер и запускать приложения. Если у вас нет действительно веской причины, выберите веб-сервер и позвольте балансировщику нагрузки сбалансировать нагрузку.

На ум приходит несколько вариантов / решений:

  • NFS:

    Сетевая файловая система (NFS) - это протокол распределенной файловой системы, первоначально разработанный Sun Microsystems в 1984 году [1], позволяющий пользователю на клиентском компьютере получать доступ к файлам через компьютерную сеть, подобно доступу к локальному хранилищу.

  • DRBD или распределенное реплицированное блочное устройство:

    Программное обеспечение DRBD® - это распределенная реплицированная система хранения для платформы Linux. Он реализован в виде нескольких приложений управления пользовательским пространством и некоторых сценариев оболочки и обычно используется на компьютерных кластерах высокой доступности (HA).

  • csync2:

    Csync2 - это инструмент синхронизации кластера. Его можно использовать для синхронизации файлов на нескольких хостах в кластере. Csync2 может обрабатывать сложные настройки с гораздо более чем двумя хостами, обрабатывать удаление файлов и обнаруживать конфликты.

Доступны и другие варианты, просто возьмите это как отправную точку.