Kako sinkronizirati dva Apache web poslužitelja/web stranice pomoću Rsync


Postoji toliko mnogo vodiča dostupnih na webu za zrcaljenje ili izradu sigurnosne kopije vaših web datoteka različitim metodama, ovdje izrađujem ovaj članak za buduću referencu, a ovdje ću koristiti vrlo jednostavnu i svestranu naredbu Linuxa za izradu sigurnosne kopije vaše web stranice. Ovaj vodič će vam pomoći da sinkronizirate podatke između svoja dva web poslužitelja pomoću “Rsync“.

Svrha stvaranja zrcala vašeg web-poslužitelja s Rsync-om je da ako vaš glavni web-poslužitelj zakaže, vaš rezervni poslužitelj može to preuzeti kako bi se smanjio zastoj vašeg web-mjesta. Ovaj način izrade sigurnosne kopije web poslužitelja vrlo je dobar i učinkovit za male i srednje web tvrtke.

Prednosti sinkronizacije web poslužitelja

Glavne prednosti stvaranja sigurnosne kopije web poslužitelja pomoću rsync su sljedeće:

  1. Rsync sinkronizira samo one bajtove i blokove podataka koji su promijenjeni.
  2. Rsync ima mogućnost provjere i brisanja datoteka i direktorija na rezervnom poslužitelju koji su izbrisani s glavnog web poslužitelja.
  3. Vodi računa o dopuštenjima, vlasništvu i posebnim atributima dok kopira podatke na daljinu.
  4. Također podržava SSH protokol za prijenos podataka na šifriran način kako biste bili sigurni da su svi podaci sigurni.
  5. Rsync koristi metodu kompresije i dekompresije tijekom prijenosa podataka što troši manje propusnosti.

Kako sinkronizirati dva Apache web poslužitelja

Nastavimo s postavljanjem rsynca za stvaranje zrcala vašeg web poslužitelja. Ovdje ću koristiti dva poslužitelja.

Glavni poslužitelj
  1. IP adresa: 192.168.0.100
  2. Naziv glavnog računala: webserver.example.com
Rezervni poslužitelj
  1. IP adresa: 192.168.0.101
  2. Naziv glavnog računala: backup.example.com

Korak 1: Instalirajte alat Rsync

Ovdje u ovom slučaju podaci web poslužitelja webserver.example.com će se zrcaliti na backup.example.com. A da bismo to učinili, prvo moramo instalirati Rsync na oba poslužitelja 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 postaviti rsync s root korisnikom, ali iz sigurnosnih razloga možete stvoriti neprivilegiranog korisnika na glavnom web poslužitelju, npr. webserver.example.com za pokretanje rsync.

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

Ovdje sam stvorio korisnika “tecmint” i dodijelio lozinku korisniku.

Korak 3: Testirajte postavku Rsync

Vrijeme je da testirate svoje postavke rsync na svom rezervnom poslužitelju (tj. backup.example.com) i da biste to učinili, upišite sljedeću naredbu.

[root@backup www]# rsync -avzhe ssh [email :/var/www/ /var/www
Uzorak izlaza
[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 savršeno dobro radi i sinkronizira podatke. Koristio sam “/var/www” za prijenos; možete promijeniti lokaciju mape prema svojim potrebama.

Korak 4: Automatizirajte sinkronizaciju sa SSH prijavom bez lozinke

Sada smo završili s postavkama rsync-a i vrijeme je da postavimo cron za rsync. Budući da ćemo koristiti rsync s SSH protokolom, ssh će tražiti autentifikaciju i ako ne damo lozinku za cron, neće raditi. Kako bi cron radio glatko, moramo postaviti ssh prijave bez lozinke za rsync.

Ovdje u ovom primjeru, ja to radim kao root da sačuvam vlasništva nad datotekama također, možete to učiniti i za alternativne korisnike.

Prvo ćemo generirati javni i privatni ključ sa sljedećim naredbama na poslužitelju za sigurnosne kopije (tj. backup.example.com).

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

Kada unesete ovu naredbu, nemojte unositi zaporku i kliknite enter za Praznu zaporku tako da rsync cron ne treba lozinku za sinkronizaciju podataka.

Uzorak izlaza
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 s glavnim poslužiteljem kako bi glavni web poslužitelj prepoznao ovaj rezervni stroj i omogućio mu prijavu bez traženja lozinke tijekom sinkronizacije podataka.

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

Sada se pokušajte prijaviti na stroj pomoću “ssh ‘[email ’” i provjerite .ssh/authorized_keys.

[root@backup html]# [email 

Sada smo gotovi s dijeljenjem ključeva. Da biste saznali više o SSH lozinki bez prijave, možete pročitati naš članak o tome.

  1. SSH Prijava bez lozinke u 5 jednostavnih koraka

Korak 5: Zakažite Cron za automatsku sinkronizaciju

Postavimo cron za ovo. Da biste postavili cron, otvorite crontab datoteku sljedećom naredbom.

[root@backup ~]# crontab –e

Otvorit će se datoteka /etc/crontab za uređivanje u vašem zadanom uređivaču. Ovdje u ovom primjeru pišem cron da ga pokrećem svakih 5 minuta radi sinkronizacije podataka.

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

Gornja naredba cron i rsync jednostavno sinkronizira “/var/www/” s glavnog web poslužitelja na rezervni poslužitelj u svakom 5 minuta. Možete promijeniti konfiguraciju vremena i lokacije mape prema svojim potrebama. Da biste bili kreativniji i prilagodili se pomoću naredbi Rsync i Cron, možete pogledati naše detaljnije članke na:

  1. 10 Rsync naredbi za sinkronizaciju datoteka/mapa u Linuxu
  2. 11 primjera Cron rasporeda u Linuxu