Wyszukiwanie w witrynie

Jak zsynchronizować dwa serwery/strony internetowe Apache za pomocą Rsync


W Internecie dostępnych jest wiele samouczków dotyczących tworzenia kopii zapasowych plików internetowych lub tworzenia kopii zapasowych plików internetowych różnymi metodami. Tutaj tworzę ten artykuł do wykorzystania w przyszłości i tutaj będę używać bardzo prostego i wszechstronnego polecenia Linuksa , aby utworzyć kopię zapasową swojej witryny. Ten samouczek pomoże Ci zsynchronizować dane między dwoma serwerami internetowymi za pomocą „Rsync”.

Celem utworzenia kopii lustrzanej Twojego serwera internetowego za pomocą Rsync jest to, że w przypadku awarii głównego serwera internetowego jego rolę może przejąć serwer zapasowy, aby skrócić czas przestoju Twojej witryny. Ten sposób tworzenia kopii zapasowej serwera WWW jest bardzo dobry i skuteczny dla małych i średnich firm internetowych.

Zalety synchronizacji serwerów internetowych

Główne zalety tworzenia kopii zapasowej serwera WWW za pomocą rsync są następujące:

  1. Rsync synchronizuje tylko te bajty i bloki danych, które uległy zmianie.
  2. Rsync ma możliwość sprawdzenia i usunięcia tych plików i katalogów na serwerze kopii zapasowych, które zostały usunięte z głównego serwera WWW.
  3. Dba o uprawnienia, własności i atrybuty specjalne podczas zdalnego kopiowania danych.
  4. Obsługuje także protokół SSH, dzięki czemu dane są przesyłane w sposób zaszyfrowany, dzięki czemu masz pewność, że wszystkie dane są bezpieczne.
  5. Rsync wykorzystuje metodę kompresji i dekompresji podczas przesyłania danych, co zużywa mniej przepustowości.

Jak zsynchronizować dwa serwery internetowe Apache

Kontynuujmy konfigurowanie rsync, aby utworzyć kopię lustrzaną twojego serwera internetowego. Tutaj będę korzystać z dwóch serwerów.

Główny Serwer
  1. Adres IP: 192.168.0.100
  2. Nazwa hosta: serwer WWW.example.com
Serwer zapasowy
  1. Adres IP: 192.168.0.101
  2. Nazwa hosta: kopia zapasowa.example.com

Krok 1: Zainstaluj narzędzie Rsync

W tym przypadku dane serwera WWW webserver.example.com zostaną odzwierciedlone na backup.example.com. Aby to zrobić, musimy najpierw zainstalować Rsync na obu serwerach za pomocą następującego polecenia.

[root@tecmint]# yum install rsync        [On Red Hat based systems]
[root@tecmint]# apt-get install rsync    [On Debian based systems]

Krok 2: Utwórz użytkownika, aby uruchomić Rsync

Możemy skonfigurować rsync z użytkownikiem root, ale ze względów bezpieczeństwa możesz utworzyć nieuprzywilejowanego użytkownika na głównym serwerze internetowym, np. serwer WWW.example.com, aby uruchomić rsync.

[root@tecmint]# useradd tecmint
[root@tecmint]# passwd tecmint

Tutaj utworzyłem użytkownika „tecmint” i przypisałem mu hasło.

Krok 3: Przetestuj konfigurację Rsync

Czas przetestować konfigurację rsync na serwerze kopii zapasowych (tj. backup.example.com) i w tym celu wpisz następujące polecenie.

[root@backup www]# rsync -avzhe ssh [email :/var/www/ /var/www
Przykładowe wyjście
[email '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

Możesz zobaczyć, że Twój rsync działa teraz całkowicie dobrze i synchronizuje dane. Do przeniesienia użyłem „/var/www”; możesz zmienić lokalizację folderu zgodnie ze swoimi potrzebami.

Krok 4: Zautomatyzuj synchronizację za pomocą logowania SSH bez hasła

Skończyliśmy już z konfiguracją rsync i nadszedł czas, aby skonfigurować cron dla rsync. Ponieważ będziemy używać rsync z protokołem SSH, ssh będzie pytał o uwierzytelnienie i jeśli nie podamy hasła do cron, to nie zadziała. Aby cron działał płynnie, musimy skonfigurować logowanie ssh bez hasła dla rsync.

W tym przykładzie robię to jako root, aby zachować również własność plików. Możesz to zrobić również dla alternatywnych użytkowników.

Najpierw wygenerujemy klucz publiczny i prywatny za pomocą następujących poleceń na serwerze kopii zapasowych (tj. backup.example.com).

[root@backup]# ssh-keygen -t rsa -b 2048

Po wpisaniu tego polecenia nie podawaj hasła i kliknij Enter, aby wyświetlić Puste hasło, aby program rsync cron nie potrzebował żadnego hasła do synchronizacji danych.

Przykładowe wyjście
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
9a:33:a9:5d:f4:e1:41:26:57:d0:9a:68:5b:37:9c:23 [email 
The key's randomart image is:
+--[ RSA 2048]----+
|          .o.    |
|           ..    |
|        ..++ .   |
|        o=E *    |
|       .Sooo o   |
|       =.o o     |
|      * . o      |
|     o +         |
|    . .          |
+-----------------+

Teraz wygenerowaliśmy nasz klucz Publiczny i Prywatny i będziemy musieli udostępnić go głównemu serwerowi, aby główny serwer internetowy rozpoznał tę maszynę kopii zapasowej i pozwolił jej się zalogować bez pytania o hasło podczas synchronizacji danych.

[root@backup html]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email 

Teraz spróbuj zalogować się do komputera za pomocą „ssh „[email ” i zamelduj się w .ssh/authorized_keys.

[root@backup html]# [email 

Skończyliśmy z udostępnianiem kluczy. Aby dowiedzieć się więcej na temat logowania bez hasła SSH, przeczytaj nasz artykuł na ten temat.

  1. Logowanie bez hasła SSH w 5 prostych krokach

Krok 5: Zaplanuj Cron, aby zautomatyzować synchronizację

Skonfigurujmy w tym celu cron. Aby skonfigurować cron, otwórz plik crontab za pomocą następującego polecenia.

[root@backup ~]# crontab –e

Otworzy się plik /etc/crontab do edycji w domyślnym edytorze. Tutaj W tym przykładzie piszę cron, który będzie uruchamiał go co 5 minut w celu synchronizacji danych.

*/5        *        *        *        *   rsync -avzhe ssh [email :/var/www/ /var/www/

Powyższe polecenie cron i rsync po prostu synchronizuje „/var/www/” z głównego serwera internetowego z serwerem zapasowym w każdym 5 minut. Możesz zmienić konfigurację czasu i lokalizacji folderu zgodnie ze swoimi potrzebami. Aby wykazać się większą kreatywnością i dostosowywać za pomocą poleceń Rsync i Cron, możesz zapoznać się z naszymi bardziej szczegółowymi artykułami pod adresem:

  1. 10 poleceń Rsync do synchronizacji plików/folderów w systemie Linux
  2. 11 przykładów planowania Cron w systemie Linux