Τρόπος συγχρονισμού δύο διακομιστών Web Apache/ιστοσελίδων χρησιμοποιώντας το Rsync


Υπάρχουν τόσα πολλά προγράμματα εκμάθησης διαθέσιμα στον ιστό για αντιγραφή ή λήψη αντιγράφων ασφαλείας των αρχείων Ιστού σας με διαφορετικές μεθόδους, εδώ δημιουργώ αυτό το άρθρο για μελλοντική αναφορά και εδώ θα χρησιμοποιήσω μια πολύ απλή και ευέλικτη εντολή του Linux για να δημιουργήσετε ένα αντίγραφο ασφαλείας του ιστότοπού σας. Αυτό το σεμινάριο θα σας βοηθήσει να συγχρονίσετε δεδομένα μεταξύ των δύο διακομιστών ιστού σας με το Rsync.

Ο σκοπός της δημιουργίας ενός καθρέφτη του Διακομιστή Ιστού σας με το Rsync είναι εάν ο κύριος διακομιστής ιστού σας αποτύχει, ο εφεδρικός διακομιστής σας μπορεί να αναλάβει τη διαχείριση για να μειώσει το χρόνο διακοπής λειτουργίας του ιστότοπού σας. Αυτός ο τρόπος δημιουργίας αντιγράφων ασφαλείας διακομιστή ιστού είναι πολύ καλός και αποτελεσματικός για μικρές και μεσαίες επιχειρήσεις ιστού.

Πλεονεκτήματα του συγχρονισμού διακομιστών Ιστού

Τα κύρια πλεονεκτήματα της δημιουργίας αντιγράφου ασφαλείας διακομιστή ιστού με το rsync είναι τα εξής:

  1. Ο Rsync συγχρονίζει μόνο τα byte και τα μπλοκ δεδομένων που έχουν αλλάξει.
  2. Το Rsync έχει τη δυνατότητα να ελέγχει και να διαγράφει εκείνα τα αρχεία και τους καταλόγους στον εφεδρικό διακομιστή που έχουν διαγραφεί από τον κύριο διακομιστή ιστού.
  3. Φροντίζει τα δικαιώματα, τις ιδιοκτησίες και τα ειδικά χαρακτηριστικά κατά την απομακρυσμένη αντιγραφή δεδομένων.
  4. Υποστηρίζει επίσης πρωτόκολλο SSH για τη μεταφορά δεδομένων με κρυπτογραφημένο τρόπο, ώστε να είστε σίγουροι ότι όλα τα δεδομένα είναι ασφαλή.
  5. Το Rsync χρησιμοποιεί μέθοδο συμπίεσης και αποσυμπίεσης κατά τη μεταφορά δεδομένων που καταναλώνουν λιγότερο εύρος ζώνης.

Πώς να συγχρονίσετε δύο διακομιστές Web Apache

Ας προχωρήσουμε στη ρύθμιση του rsync για να δημιουργήσουμε έναν καθρέφτη του διακομιστή ιστού σας. Εδώ, θα χρησιμοποιήσω δύο διακομιστές.

Κύριος διακομιστής

  1. Διεύθυνση IP: 192.168.0.100
  2. Όνομα κεντρικού υπολογιστή: webserver.example.com

Εφεδρικός διακομιστής

  1. Διεύθυνση IP: 192.168.0.101
  2. Όνομα κεντρικού υπολογιστή: backup.example.com

Βήμα 1: Εγκαταστήστε το Rsync Tool

Σε αυτήν την περίπτωση, τα δεδομένα διακομιστή ιστού του webserver.example.com θα αντικατοπτρίζονται στο backup.example.com. Και για να το κάνουμε αυτό πρώτα, πρέπει να εγκαταστήσουμε το Rsync και στους δύο διακομιστή με τη βοήθεια της παρακάτω εντολής.

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

Βήμα 2: Δημιουργήστε έναν χρήστη για να εκτελέσετε το Rsync

Μπορούμε να ρυθμίσουμε το rsync με χρήστη root, αλλά για λόγους ασφαλείας, μπορείτε να δημιουργήσετε έναν μη προνομιούχο χρήστη στον κύριο διακομιστή ιστού, π.χ. webserver.example.com για να εκτελέσετε το rsync.

[]# useradd tecmint
[]# passwd tecmint

Εδώ έχω δημιουργήσει έναν χρήστη tecmint και έχω εκχωρήσει έναν κωδικό πρόσβασης στον χρήστη.

Βήμα 3: Δοκιμάστε το Rsync Setup

Ήρθε η ώρα να δοκιμάσετε τη ρύθμιση rsync στον εφεδρικό διακομιστή σας (π.χ. backup.example.com) και για να το κάνετε, πληκτρολογήστε την ακόλουθη εντολή.

[:/var/www/ /var/www
Δείγμα εξόδου
'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, πρέπει να ρυθμίσουμε συνδέσεις ssh χωρίς κωδικό πρόσβασης για rsync.

Εδώ σε αυτό το παράδειγμα, το κάνω ως root για να διατηρήσω τις ιδιοκτησίες αρχείων επίσης, μπορείτε να το κάνετε και για εναλλακτικούς χρήστες.

Αρχικά, θα δημιουργήσουμε ένα κλειδί δημόσιο και ιδιωτικό με τις ακόλουθες εντολές στον διακομιστή δημιουργίας αντιγράφων ασφαλείας (π.χ. backup.example.com).

[]# ssh-keygen -t rsa -b 2048

Όταν εισάγετε αυτήν την εντολή, μην παρέχετε φράση πρόσβασης και κάντε κλικ στο enter για Κενή φράση πρόσβασης έτσι ώστε το rsync cron να μην χρειάζεται κωδικό πρόσβασης για το συγχρονισμό δεδομένων.

Δείγμα εξόδου
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 
The key's randomart image is:
+--[ RSA 2048]----+
|          .o.    |
|           ..    |
|        ..++ .   |
|        o=E *    |
|       .Sooo o   |
|       =.o o     |
|      * . o      |
|     o +         |
|    . .          |
+-----------------+

Τώρα, το κλειδί Δημόσιο και Ιδιωτικό έχει δημιουργηθεί και θα πρέπει να το μοιραστούμε με τον κύριο διακομιστή, έτσι ώστε ο κύριος διακομιστής ιστού να αναγνωρίσει αυτό το μηχάνημα δημιουργίας αντιγράφων ασφαλείας και να του επιτρέψει να συνδεθεί χωρίς να ζητήσετε κωδικό πρόσβασης κατά το συγχρονισμό δεδομένων.

[

Τώρα δοκιμάστε να συνδεθείτε στο μηχάνημα, με το ssh [email  και κάντε check in .ssh/authorized_keys.

[

Τώρα, τελειώσαμε με την κοινή χρήση κλειδιών. Για να μάθετε περισσότερα σε βάθος σχετικά με τη Σύνδεση χωρίς κωδικό πρόσβασης SSH, μπορείτε να διαβάσετε το άρθρο μας σχετικά με αυτό.

  1. Σύνδεση χωρίς κωδικό πρόσβασης SSH σε 5 εύκολα βήματα

Βήμα 5: Προγραμματίστε το Cron για αυτοματοποίηση συγχρονισμού

Ας δημιουργήσουμε ένα cron για αυτό. Για να ρυθμίσετε ένα cron, ανοίξτε το αρχείο crontab με την ακόλουθη εντολή.

[ ~]# crontab –e

Θα ανοίξει το αρχείο /etc/crontab για επεξεργασία με τον προεπιλεγμένο επεξεργαστή σας. Εδώ Σε αυτό το παράδειγμα, γράφω ένα cron για να το εκτελείτε κάθε 5 λεπτά για να συγχρονίσετε τα δεδομένα.

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

Η παραπάνω εντολή cron και rsync απλώς συγχρονίζει το /var/www/ από τον κύριο διακομιστή ιστού σε έναν εφεδρικό διακομιστή σε κάθε 5 λεπτά. Μπορείτε να αλλάξετε τη διαμόρφωση ώρας και θέσης φακέλου ανάλογα με τις ανάγκες σας. Για να είστε πιο δημιουργικοί και να προσαρμόσετε τις εντολές Rsync και Cron, μπορείτε να δείτε τα πιο λεπτομερή άρθρα μας στη διεύθυνση:

  1. 10 εντολές Rsync για συγχρονισμό αρχείων/φακέλων στο Linux
  2. 11 Παραδείγματα προγραμματισμού Cron στο Linux