Két Apache webszerver/webhely szinkronizálása Rsync használatával
Rengeteg oktatóanyag érhető el a weben, amelyek segítségével különböző módszerekkel tükrözheti vagy készíthet biztonsági másolatot a webfájlokról, itt készítem ezt a cikket későbbi hivatkozásom céljából, és itt a Linux egy nagyon egyszerű és sokoldalú parancsát fogom használni. biztonsági másolat készítéséhez a webhelyről. Ez az oktatóanyag segít az adatok szinkronizálásában a két webszerver között az „Rsync” segítségével.
A Webszerver tükör létrehozásának célja az Rsync segítségével, ha a fő webszerver meghibásodik, a tartalék szerver átveheti az irányítást a webhely állásidejének csökkentése érdekében. A webszerver biztonsági mentésének ez a módja nagyon jó és hatékony a kis- és közepes méretű webes vállalkozások számára.
A webszerverek szinkronizálásának előnyei
A webszerver biztonsági mentésének rsync segítségével történő létrehozásának fő előnyei a következők:
- Az Rsync csak azokat a bájtokat és adatblokkokat szinkronizálja, amelyek megváltoztak.
- Az Rsync képes ellenőrizni és törölni a biztonsági mentési kiszolgálón azokat a fájlokat és könyvtárakat, amelyeket a fő webszerverről töröltek.
- Az adatok távolról történő másolása közben gondoskodik az engedélyekről, a tulajdonjogokról és a speciális attribútumokról.
- Támogatja továbbá az SSH protokollt az adatok titkosított átviteléhez, így biztos lehet benne, hogy minden adat biztonságban van.
- Az Rsync tömörítési és kitömörítési módszert használ az adatátvitel során, amely kevesebb sávszélességet fogyaszt.
Két Apache webszerver szinkronizálása
Folytassa az rsync beállításával, hogy létrehozza a webszerver tükrét. Itt két szervert fogok használni.
Fő szerver
- IP-cím: 192.168.0.100
- Gazdagépnév: webszerver.example.com
Backup Server
- IP-cím: 192.168.0.101
- Gazdagépnév: backup.example.com
1. lépés: Telepítse az Rsync eszközt
Ebben az esetben a webserver.example.com webszerver adatai tükröződnek a backup.example.com oldalon. Ehhez először telepítenünk kell az Rsync programot mindkét szerverre a következő parancs segítségével.
[root@tecmint]# yum install rsync [On Red Hat based systems]
[root@tecmint]# apt-get install rsync [On Debian based systems]
2. lépés: Hozzon létre egy felhasználót az Rsync futtatásához
Beállíthatjuk az rsync-et root felhasználóval, de biztonsági okokból létrehozhat egy privilegizált felhasználót a fő webszerveren, azaz a webserver.example.com címen az rsync futtatásához.
[root@tecmint]# useradd tecmint
[root@tecmint]# passwd tecmint
Itt létrehoztam egy „tecmint” felhasználót, és jelszót rendeltem a felhasználóhoz.
3. lépés: Tesztelje az Rsync beállítását
Itt az ideje, hogy tesztelje az rsync beállítását a tartalék szerveren (azaz backup.example.com), és ehhez írja be a következő parancsot.
[root@backup www]# rsync -avzhe ssh [email :/var/www/ /var/www
Minta kimenet
[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
Láthatja, hogy az rsync most teljesen jól működik, és szinkronizálja az adatokat. „/var/www”-et használtam az átvitelhez; igény szerint módosíthatja a mappa helyét.
4. lépés: Automatizálja a szinkronizálást SSH-jelszó nélküli bejelentkezéssel
Most végeztünk az rsync beállításaival, és itt az ideje, hogy beállítsunk egy cron-t az rsync számára. Mivel az rsync-et az SSH protokollal fogjuk használni, az ssh hitelesítést fog kérni, és ha nem adunk meg jelszót a cron számára, akkor nem fog működni. A cron zökkenőmentes működéséhez jelszó nélküli ssh bejelentkezést kell beállítanunk az rsynchez.
Ebben a példában ezt rootként teszem, hogy megőrizzem a fájlok tulajdonjogát is, alternatív felhasználók számára is megteheti.
Először is létrehozunk egy nyilvános és privát kulcsot a következő parancsokkal a biztonsági mentési szerveren (azaz backup.example.com).
[root@backup]# ssh-keygen -t rsa -b 2048
Amikor beírja ezt a parancsot, kérjük, ne adjon meg jelszót, és kattintson az Enter billentyűre az Jelszó ürítése esetén, hogy az rsync cronnak ne legyen szüksége jelszóra az adatok szinkronizálásához.
Minta kimenet
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 + |
| . . |
+-----------------+
Most létrejött a nyilvános és a privát kulcsunk, és meg kell osztanunk a fő szerverrel, hogy a fő webszerver felismerje ezt a biztonsági mentési gépet, és lehetővé tegye a bejelentkezéshez. jelszó kérése nélkül az adatok szinkronizálása közben.
[root@backup html]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email
Most próbáljon meg bejelentkezni a gépre az „ssh ‘[email ’” használatával, és jelentkezzen be az.ssh/authorized_keys fájlba.
[root@backup html]# [email
Most végeztünk a kulcsok megosztásával. Ha többet szeretne megtudni az SSH-jelszó kevesebb bejelentkezésről, olvassa el a cikkünket.
- SSH jelszó nélküli bejelentkezés 5 egyszerű lépésben
5. lépés: A Cron ütemezése a szinkronizálás automatizálására
Állítsunk be egy cront ehhez. A cron beállításához nyissa meg a crontab fájlt a következő paranccsal.
[root@backup ~]# crontab –e
Megnyitja az /etc/crontab fájlt, amelyet az alapértelmezett szerkesztővel szerkeszthet. Itt Ebben a példában egy cron-t írok, hogy 5 percenként lefusson az adatok szinkronizálásához.
*/5 * * * * rsync -avzhe ssh [email :/var/www/ /var/www/
A fenti cron és rsync parancs egyszerűen szinkronizálja a „/var/www/” fájlt a fő webszerverről egy tartalék szerverre minden -ban. 5 percig. Igényeinek megfelelően módosíthatja az idő és a mappa helyének konfigurációját. Ha kreatívabb akar lenni, és testreszabhatja az Rsync és Cron parancsokat, tekintse meg részletesebb cikkeinket a következő címen:
- 10 Rsync parancs a fájlok/mappák szinkronizálásához Linux alatt
- 11 Cron ütemezési példa Linuxban