Полное копирование VPS с помощью rsync

Я очень долго думал о копировании моего VPS. По совету я получил rsync и теперь хотел бы использовать его для копирования своих веб-сайтов, размещенных на моем VPS.

Ситуация такова; У меня есть VPS с лицензией directadmin на ежемесячной основе, и я хочу скопировать все данные веб-сайта этого VPS на свой новый с бессрочной лицензией. Я установил CentOS7 на новый, включая весь брандмауэр. Таким образом, он должен просто скопировать базы данных и т. Д. Из моих существующих пользователей.

Мне определенно не нужна копия полного VPS 1: 1, на первом есть странное программное обеспечение, от которого я хочу избавиться.

После того как я передал все данные веб-сайта, я хочу убедиться, что оба VPS имеют одинаковые данные, чтобы я мог разделить входящий трафик.

Здесь много вопросов :-) - какой каталог подходит для всех данных веб-сайта, включая базы данных? - как настроить синхронизацию рабочего процесса между обоими VPS?

-1
задан 25 April 2019 в 13:22
1 ответ

Копирование файлов и БД - это две разные вещи.

Вы можете копировать файлы своего веб-сайта в любое время, не завершая работу какой-либо службы. Но это не сработает для MySQL.

Чтобы выполнить rsync MySQL, вам сначала необходимо остановить службу на обоих серверах (исходном и целевом).

Насколько я понял,вам нужно будет сделать выбор в отношении конфигурации вашего сервера MySQL. Либо настройте кластер Multi-Master-MySQL, либо используйте один узел MySQL (я бы предложил более поздний, единственный узел MySQL, поскольку им намного проще управлять).

Сервер MySQL может быть размещен на одном из ваших VPS или выделенный.

Чтобы настроить ваше веб-приложение для взаимодействия с MySQL, просто измените "localhost" (или 127.0.0.1, если это так) на IP-адрес сервера MySQL (это может быть локальный или публичный IP). Вы также захотите убедиться, что оба IP-адреса сервера и имя хоста могут принимать входящие запросы в MySQL.


Что касается файлов веб-сайта; rsync отлично подходит для клонирования вашего сайта с одного сервера на другой. Но он будет потреблять слишком много ввода-вывода, если вы планируете использовать его в качестве решения для синхронизации.


Что вы могли бы сделать (самый простой (1) и более сложный (2) дизайн):

1a) создать NFS на одном из ваших 2 узлов (возможно, на вашем «главном» узле)
1b) смонтируйте динамические каталоги на втором сервере (т.е. для wordPress это, вероятно, будет ваш каталог загрузок)
1c) для любого обновления вам нужно будет найти решение, такое как rsync или, что еще лучше, репозиторий кода, например git

2a) настроить сетевую файловую систему, такую ​​как GlusterFS или Ceph, которая будет использовать ваше веб-приложение doc корневой каталог в качестве точки монтирования.
2b) смонтируйте свои каталоги на обоих серверах.

Еще кое-что, о чем не спрашивали, но о котором вы захотите убедиться, это конфигурация SSL;
Обычно балансировщик нагрузки также выполняет разгрузку SSL, и трафик между балансировщиком нагрузки и ведомыми устройствами не зашифрован. Таким образом, вы, вероятно, захотите объявить своим ведомым устройствам, что трафик, исходящий от балансировщика нагрузки, должен интерпретироваться как «защищенный» и использующий SSL по запросу (чтобы ваш веб-сайт возвращал URL-адреса https: //, даже если он обрабатывается на не- https порт).

Тем не менее, это непростая установка и настройка, так как вам нужно будет охватить все базы ваших клиентов (т.е. если они изменят конфигурацию PHP, вам необходимо убедиться, что новая конфигурация также будет учтена на втором узле).

2
ответ дан 5 December 2019 в 19:21

Теги

Похожие вопросы