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:
- Rsync sinkronizira samo one bajtove i blokove podataka koji su promijenjeni.
- Rsync ima mogućnost provjere i brisanja datoteka i direktorija na rezervnom poslužitelju koji su izbrisani s glavnog web poslužitelja.
- Vodi računa o dopuštenjima, vlasništvu i posebnim atributima dok kopira podatke na daljinu.
- Također podržava SSH protokol za prijenos podataka na šifriran način kako biste bili sigurni da su svi podaci sigurni.
- 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
- IP adresa: 192.168.0.100
- Naziv glavnog računala: webserver.example.com
Rezervni poslužitelj
- IP adresa: 192.168.0.101
- 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.
- 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:
- 10 Rsync naredbi za sinkronizaciju datoteka/mapa u Linuxu
- 11 primjera Cron rasporeda u Linuxu