Kaip sinchronizuoti du „Apache“ žiniatinklio serverius/svetaines naudojant „Rsync“.


Žiniatinklyje yra tiek daug vadovėlių, skirtų įvairiais būdais atspindėti arba kurti atsargines žiniatinklio failų kopijas. Kuriu šį straipsnį, kad galėčiau naudoti ateičiai, o čia naudosiu labai paprastą ir universalią Linux komandą. norėdami sukurti atsarginę savo svetainės kopiją. Ši mokymo programa padės sinchronizuoti duomenis tarp dviejų žiniatinklio serverių naudojant „Rsync“.

Jūsų žiniatinklio serverio atspindžio kūrimo su Rsync tikslas yra toks, kad jei sugenda pagrindinis žiniatinklio serveris, atsarginis serveris gali perimti, kad sumažintų svetainės prastovą. Šis žiniatinklio serverio atsarginės kopijos kūrimo būdas yra labai geras ir efektyvus mažoms ir vidutinėms interneto įmonėms.

Žiniatinklio serverių sinchronizavimo pranašumai

Pagrindiniai žiniatinklio serverio atsarginės kopijos su rsync kūrimo pranašumai yra šie:

  1. Rsync sinchronizuoja tik tuos baitus ir duomenų blokus, kurie pasikeitė.
  2. Rsync turi galimybę patikrinti ir ištrinti tuos failus ir katalogus atsarginiame serveryje, kurie buvo ištrinti iš pagrindinio žiniatinklio serverio.
  3. Kopijuodama duomenis nuotoliniu būdu, jis rūpinasi leidimais, nuosavybės teisėmis ir specialiais atributais.
  4. Jis taip pat palaiko SSH protokolą, skirtą duomenims perduoti šifruotu būdu, kad būtumėte tikri, kad visi duomenys yra saugūs.
  5. „Rsync“ naudoja glaudinimo ir išskleidimo metodą, kai perduoda duomenis, kurie sunaudoja mažiau pralaidumo.

Kaip sinchronizuoti du „Apache“ žiniatinklio serverius

Tęskime nustatydami rsync, kad sukurtume žiniatinklio serverio veidrodį. Čia aš naudosiu du serverius.

Pagrindinis serveris
  1. IP adresas: 192.168.0.100
  2. Prieglobos serverio pavadinimas: žiniatinklio serveris.example.com
Atsarginis serveris
  1. IP adresas: 192.168.0.101
  2. Prieglobos serverio pavadinimas: backup.example.com

1 veiksmas: įdiekite „Rsync Tool“.

Šiuo atveju žiniatinklio serverio duomenys webserver.example.com bus atspindėti backup.example.com. Norėdami tai padaryti, pirmiausia turime įdiegti Rsync abiejuose serveriuose naudodami šią komandą.

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

2 veiksmas: sukurkite vartotoją, kad paleistumėte Rsync

Galime nustatyti rsync su root naudotoju, tačiau saugumo sumetimais pagrindiniame žiniatinklio serveryje, pvz., webserver.example.com, galite sukurti neprivilegijuotą naudotoją, kad paleistumėte rsync.

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

Čia sukūriau vartotoją „tecmint“ ir priskyriau vartotojui slaptažodį.

3 veiksmas: išbandykite „Rsync“ sąranką

Atėjo laikas išbandyti rsync sąranką atsarginiame serveryje (t. y. backup.example.com) ir tai padaryti įveskite šią komandą.

[root@backup www]# rsync -avzhe ssh [email :/var/www/ /var/www
Pavyzdžio išvestis
[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

Matote, kad jūsų rsync dabar veikia visiškai gerai ir sinchronizuoja duomenis. Perkėlimui naudojau „/var/www“; galite pakeisti aplanko vietą pagal savo poreikius.

4 veiksmas: automatizuokite sinchronizavimą su SSH prisijungimu be slaptažodžio

Dabar baigėme rsync sąranką ir dabar laikas nustatyti rsync cron. Kadangi ketiname naudoti rsync su SSH protokolu, ssh prašys autentifikavimo ir jei nepateiksime cron slaptažodžio, jis neveiks. Kad cron veiktų sklandžiai, rsync turime nustatyti be slaptažodžių ssh prisijungimus.

Šiame pavyzdyje tai darau kaip root, kad išsaugotume failų nuosavybės teises. Taip pat galite tai padaryti ir kitiems naudotojams.

Pirmiausia atsarginių kopijų serveryje (t. y. backup.example.com) sugeneruosime viešąjį ir privatų raktą su šiomis komandomis.

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

Kai įvesite šią komandą, nenurodykite slaptafrazės ir spustelėkite įvesti Ištuštinti slaptafrazę, kad rsync cron nereikėtų slaptažodžio sinchronizuoti duomenis.

Pavyzdžio išvestis
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 +         |
|    . .          |
+-----------------+

Dabar mūsų viešasis ir privatus raktas buvo sugeneruotas ir turėsime jį bendrinti su pagrindiniu serveriu, kad pagrindinis žiniatinklio serveris atpažintų šį atsarginį įrenginį ir leistų prisijungti. neklausiant slaptažodžio sinchronizuojant duomenis.

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

Dabar pabandykite prisijungti prie įrenginio naudodami „ssh ‘[el. paštas apsaugotas]“ ir užsiregistruokite .ssh/authorized_keys.

[root@backup html]# [email 

Dabar mes baigėme bendrinti raktus. Norėdami sužinoti daugiau apie SSH slaptažodžio mažiau prisijungimo, galite perskaityti mūsų straipsnį apie tai.

  1. SSH be slaptažodžio prisijunkite atlikdami 5 paprastus veiksmus

5 veiksmas: suplanuokite „Cron“ automatizuoti sinchronizavimą

Tam nustatykime croną. Norėdami nustatyti cron, atidarykite crontab failą naudodami šią komandą.

[root@backup ~]# crontab –e

Bus atidarytas /etc/crontab failas, kurį galėsite redaguoti naudodami numatytąjį redaktorių. Čia Šiame pavyzdyje rašau cron, kad paleisčiau jį kas 5 minutes, kad būtų sinchronizuojami duomenys.

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

Aukščiau pateikta komanda cron ir rsync tiesiog sinchronizuoja „/var/www/“ iš pagrindinio žiniatinklio serverio su atsarginiu serveriu kiekviename 5 minutės. Galite pakeisti laiko ir aplanko vietos konfigūraciją pagal savo poreikius. Norėdami būti kūrybiškesni ir tinkinti naudodami komandas Rsync ir Cron, galite peržiūrėti išsamesnius straipsnius adresu:

  1. 10 „Rsync“ komandų, skirtų failams/aplankams sinchronizuoti „Linux“.
  2. 11 „Cron“ planavimo pavyzdžių sistemoje „Linux“.