В Интернете доступно большое количество учебных пособий для зеркалирования или создания резервных копий веб-файлов различными методами. В этой статье мы будем использовать очень простую и универсальную команду Linux для создания резервной копировании веб-сервера. Эта статья поможет вам синхронизировать данные между двумя веб-серверами с помощью «Rsync».
Цель создания зеркала вашего веб-сервера с помощью Rsync заключается в том, что в случае сбоя основного веб-сервера ваш резервный («зеркальный») сервер может быстро подменить вишедшего из строя собрата по оружию, чтобы сократить общее время простоя до починки основного веб-сервера. Этот способ создания резервной копии веб-сервера очень хорош и эффективен для малого и среднего бизнеса.
Преимущества синхронизации веб-серверов
Основные преимущества создания резервной копии веб-сервера с помощью rsync:
- Rsync синхронизирует только те файлы и блоки данных, которые изменились.
- Rsync имеет возможность проверять и удалять те файлы и каталоги с сервера резервного копирования, которые уже были удалены с основного веб-сервера.
- Rsync заботится о разрешениях, владельцах и специальных атрибутах при удаленном копировании данных.
- Rsync также поддерживает протокол SSH для передачи данных в зашифрованном виде, так что вы можете быть уверены, что все ваши данные останутся в безопасности.
- Rsync использует специальный метод сжатия и распаковки при передаче данных, что позволяет потреблять меньше пропускной способности.
Как синхронизировать два веб-сервера Apache?
Давайте приступим к настройке rsync для создания зеркала вашего веб-сервера. Мы будем использовать сервера со следующими настройками:
Основной сервер
- IP-адрес: 192.168.0.100
- Имя хоста: webserver.example.com
Резервный сервер
- IP-адрес: 192.168.0.101
- Имя хоста: backup.example.com
Шаг 1: Установка инструмента Rsync
В нашем случае данные веб-сервера webserver.example.com будут зеркалироваться на backup.example.com. Чтобы это сделать, нам в первую очередь необходимо установить Rsync на оба сервера. Выполнить это можно с помощью следующей команды:
[[email protected]]# yum install rsync [On Red Hat based systems]
[[email protected]]# apt-get install rsync [On Debian based systems]
Шаг 2. Создание пользователя для запуска Rsync
Мы можем настроить rsync зайдя под пользователем root, но по соображениям безопасности рекомендуем вам создать непривилегированного пользователя на главном веб-сервере (то есть на webserver.example.com) для запуска rsync:
[[email protected]]# useradd sedicomm
[[email protected]]# passwd sedicomm
Здесь мы создали пользователя «sedicomm» и назначил ему пароль.
Шаг 3: Проверка настройки Rsync
Пришло время проверить настройки rsync на сервере резервного копирования (т.е. backup.example.com). Выполнить это можно, введя следующую команду:
[[email protected] www]# rsync -avzhe ssh [email protected]:/var/www/ /var/www
Пример вывода
[email protected]'s password:
receiving incremental file list
sent 128 bytes received 32.67K bytes 5.96K bytes/sec
total size is 12.78M speedup is 389.70
Вы можете увидеть, что rsync работает должным образом и синхронизирует данные. Мы зеркалировали папку с файлами «/var/www». Вы можете изменить расположение папки в соответствии с вашими потребностями.
Шаг 4: Автоматизация синхронизации с помощью SSH без пароля
Как только мы закончили с настройками rsync, пришло время настроить cron для rsync. Поскольку мы собираемся использовать rsync с протоколом SSH, ssh будет запрашивать аутентификацию, и если мы не предоставим пароль для cron, то он не будет работать. Для бесперебойной работы cron нам нужно настроить ssh доступ для входа без пароля.
В этом примере, мы выполняем все настройки от имени пользователя root, чтобы сохранить права владения файлами, вы можете выполнить это и для альтернативных пользователей.
Во-первых, мы создадим открытый и закрытый ключ с помощью следующих команд на сервере резервных копий (т.е. backup.example.com):
[[email protected]]# ssh-keygen -t rsa -b 2048
Когда вы вводите эту команду, пожалуйста, не заполняйте поле «Enter passphrase«. Просто нажмите ввод чтобы оставить это поле пустым. Это необходимо, чтобы rsync в cron не нуждался в пароле при синхронизации данных:
Пример вывода
Теперь наш открытый и закрытый ключ сгенерирован, и нам придется поделиться им с главным сервером, чтобы основной веб-сервер распознал этот компьютер резервного копирования и позволил ему войти в систему без запроса пароля при синхронизации данных.
[[email protected] html]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
Теперь попробуйте войти в систему, используя «ssh ‘[email protected]‘», и публичный ключ в .ssh/authorized_keys:
[[email protected] html]# [email protected]
На этом мы закончили с разделением ключей. Чтобы узнать больше о входе по SSH без пароля, вы можете прочитать нашу статью:
Шаг 5: Запланируйте Cron для автоматической синхронизации
Давайте настроим cron для автоматической синхронизации. Чтобы настроить cron, пожалуйста, откройте файл crontab с помощью следующей команды:
[[email protected] ~]# crontab –e
Откроется файл /etc/crontab для редактирования в редакторе по умолчанию. В этом примере мы указываем cron выполнять синхронизацию данных каждые 5 минут:
*/5 * * * * rsync -avzhe ssh [email protected]:/var/www/ /var/www/
Приведенные выше команды cron и rsync просто синхронизируют «/var/www/» с основного веб-сервера на резервный сервер каждые 5 минут. Вы можете изменить время и конфигурацию расположения папки в соответствии с вашими потребностями.
Чтобы быть более креативным и настраивать еще больше синхронизаций с помощью команд Rsync и Cron, вы можете ознакомиться с еще одной статьей по этой теме:
Как настроить DRBD для Replicate Storage на двух серверах CentOS 7?
Если вам понравилась эта статья, подпишитесь на наши уведомления. Если у вас остались какие-нибудь вопросы, то оставляйте их в разделе комментариев.
Cпасибо за уделенное время на прочтение статьи о том, как синхронизировать два веб-сервера Apache с помощью Rsync!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco и Linux с трудоустройством!
- Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
- Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
- Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
- Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
- Если хотите индивидуальный график — обсудим и осуществим.
- Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- отредактировать резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.