У меня есть два сервера с балансировкой нагрузки, каждый из которых выполняет точно такую же копию различных веб-сайтов на основе PHP.Синхронизация веб-каталогов между серверами с балансировкой нагрузки
Пользователь admin (или несколько пользователей-администраторов), попав на свой сайт, может попасть на тот или иной сервер, если захочет изменить контент, например. загружать изображение, удалять файл из медиа-библиотеки и т. д.
Эти операции означают, что один или другой сервер или оба сервера синхронизируются друг с другом и должны быть возвращены в очередь.
В настоящее время я смотрю на rsync для этого с помощью опции -delete, но я не уверен, как он реагирует на удаляемые файлы и новые файлы, созданные между серверами.
т. Е. Если я удалю файл на сервере Сервер A и rsync с сервером B, файл также должен быть удален с сервера B (поскольку он больше не существует на A), но если я отдельно загружаю файл на сервер B, а также удалив файл с сервера A перед запуском синхронизации, будет ли удаляться файл, который был загружен на сервер B, так как он не существует на сервере A?
В ряде учебных пособий в Интернете рассматривается сценарий типа «хозяин-ведомый», где сервер B является зеркалом сервера A, и этот процесс просто работает, но в моей ситуации оба сервера фактически являются мастерами, отражающими друг друга.
Я думаю Rsync хранит локальную историю файлов, которые он имеет дело и как таковые могут быть в состоянии справиться с этой проблемой грациозно, но я не уверен, если это действительно так, или если это опасно полагаться на это в одиночку ?
Есть ли лучший способ справиться с этой проблемой?
Предположим, что у вас есть следующая сценария: на сервере A есть файлы {A, B), сервер B имеет файлы {B, C}. Если вы запустите синхронизацию на сервере A, откуда вы знаете, должен ли файл A быть удален или отправлен на сервер B?Как вы определяете погоду или нет файл A был добавлен только на сервере A или просто удален на сервере B? – aglassman