Kako sinhronizirati dva Apache web servera/web stranice koristeći Rsync


Postoji toliko mnogo tutorijala dostupnih na webu za preslikavanje ili pravljenje sigurnosne kopije vaših web datoteka različitim metodama, ovdje kreiram ovaj članak za moju buduću referencu i ovdje ću koristiti vrlo jednostavnu i svestranu naredbu Linuxa da napravite rezervnu kopiju vaše web stranice. Ovaj vodič će vam pomoći da sinhronizujete podatke između vaša dva web servera pomoću „Rsync“.

Svrha kreiranja ogledala vašeg Web servera sa Rsync je ako vaš glavni web server pokvari, vaš backup server može preuzeti da smanji vrijeme zastoja vaše web stranice. Ovaj način kreiranja sigurnosne kopije web servera je vrlo dobar i efikasan za mala i srednja web preduzeća.

Prednosti sinhronizacije web servera

Glavne prednosti kreiranja sigurnosne kopije web servera s rsync su sljedeće:

  1. Rsync sinkronizira samo one bajtove i blokove podataka koji su promijenjeni.
  2. Rsync ima mogućnost da provjeri i izbriše one datoteke i direktorije na backup serveru koji su izbrisani sa glavnog web servera.
  3. Vodi računa o dozvolama, vlasništvu i posebnim atributima dok kopira podatke na daljinu.
  4. Također podržava SSH protokol za prijenos podataka na šifriran način, tako da ćete biti sigurni da su svi podaci sigurni.
  5. Rsync koristi metodu kompresije i dekompresije dok prenosi podatke koji troše manje propusnog opsega.

Kako sinhronizirati dva Apache web servera

Nastavimo s postavljanjem rsync za kreiranje ogledala vašeg web servera. Evo, ja ću koristiti dva servera.

Glavni server
  1. IP adresa: 192.168.0.100
  2. Naziv hosta: webserver.example.com
Backup Server
  1. IP adresa: 192.168.0.101
  2. Naziv hosta: backup.example.com

Korak 1: Instalirajte Rsync alat

Ovdje će u ovom slučaju podaci web servera webserver.example.com biti preslikani na backup.example.com. A da bismo to prvo uradili, moramo instalirati Rsync na oba servera uz pomoć sljedeće naredbe.

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

Korak 2: Kreirajte korisnika za pokretanje Rsync

Možemo podesiti rsync sa root korisnikom, ali iz sigurnosnih razloga možete kreirati neprivilegiranog korisnika na glavnom web serveru, tj. webserver.example.com za pokretanje rsync.

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

Ovdje sam kreirao korisnika “tecmint” i dodijelio mu lozinku.

Korak 3: Testirajte Rsync podešavanje

Vrijeme je da testirate svoje rsync postavke na vašem backup serveru (tj. backup.example.com) i da to učinite, unesite sljedeću naredbu.

[root@backup www]# rsync -avzhe ssh [email :/var/www/ /var/www
Sample Output
[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žete vidjeti da vaš rsync sada radi potpuno dobro i sinhronizira podatke. Koristio sam “/var/www” za prijenos; možete promijeniti lokaciju mape prema vašim potrebama.

Korak 4: Automatizirajte sinhronizaciju sa SSH prijavom bez lozinke

Sada smo završili sa rsync postavkama i sada je vrijeme da postavimo cron za rsync. Kako ćemo koristiti rsync sa SSH protokolom, ssh će tražiti autentifikaciju i ako ne damo lozinku za cron, neće raditi. Da bi cron radio nesmetano, moramo podesiti ssh prijave bez lozinke za rsync.

Ovdje u ovom primjeru to radim kao root da bih sačuvao vlasništvo nad datotekama, a to možete učiniti i za alternativne korisnike.

Prvo ćemo generirati javni iprivatni ključ sa sljedećim komandama na serveru rezervnih kopija (tj. backup.example.com).

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

Kada unesete ovu naredbu, nemojte unositi pristupnu frazu i kliknite enter za Empty passphrase tako da rsync cron neće trebati lozinku za sinhronizaciju podataka.

Sample Output
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 +         |
|    . .          |
+-----------------+

Sada je naš javni i privatni ključ generiran i morat ćemo ga podijeliti sa glavnim serverom kako bi glavni web server prepoznao ovu sigurnosnu mašinu i omogućio joj da se prijavi bez traženja lozinke tokom sinhronizacije podataka.

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

Sada se pokušajte prijaviti na mašinu sa “ssh ‘[email ‘” i provjerite .ssh/authorized_keys.

[root@backup html]# [email 

Sada smo završili sa deljenjem ključeva. Da biste saznali detaljnije o SSH prijavi bez lozinke, možete pročitati naš članak o tome.

  1. SSH prijava bez lozinke u 5 jednostavnih koraka

Korak 5: Planirajte Cron za automatizaciju sinhronizacije

Postavimo cron za ovo. Da biste podesili cron, otvorite datoteku crontab sa sljedećom komandom.

[root@backup ~]# crontab –e

Otvoriće se /etc/crontab fajl za uređivanje pomoću vašeg podrazumevanog uređivača. Ovdje U ovom primjeru, pišem cron da ga pokrenem svakih 5 minuta radi sinhronizacije podataka.

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

Gornja naredba cron i rsync jednostavno sinhronizuje “/var/www/” sa glavnog web servera na backup server u svakom 5 minuta. Možete promijeniti vrijeme i konfiguraciju lokacije foldera prema vašim potrebama. Da biste bili kreativniji i prilagodili se s naredbom Rsync i Cron, možete pogledati naše detaljnije članke na:

  1. 10 Rsync naredbi za sinhronizaciju datoteka/mapika u Linuxu
  2. 11 primjera Cron rasporeda u Linuxu