Kuinka synkronoida kaksi Apache-palvelinta/verkkosivustoa Rsyncin avulla


Verkossa on niin paljon opetusohjelmia peilata tai ottaa varmuuskopio web-tiedostoistasi eri menetelmillä, tässä luon tämän artikkelin tulevaa käyttöä varten ja käytän tässä hyvin yksinkertaista ja monipuolista Linux-komentoa luomaan varmuuskopio verkkosivustoltasi. Tämä opetusohjelma auttaa sinua synkronoimaan kahden verkkopalvelimesi tiedot Rsync-toiminnon kanssa.

Verkkopalvelimesi peilin luominen Rsyncin avulla on, että jos pääverkkopalvelimesi epäonnistuu, varmuuskopiointipalvelimesi voi ryhtyä toimiin vähentämään verkkosivustosi seisokkeja. Tämä tapa luoda verkkopalvelimen varmuuskopio on erittäin hyvä ja tehokas pienille ja keskisuurille web-yrityksille.

Verkkopalvelimien synkronoinnin edut

Verkkopalvelimen varmuuskopion luomisen tärkeimmät edut rsyncin avulla ovat seuraavat:

  1. Rsync synkronoi vain muutuneet tavut ja tietolohkot.
  2. Rsync pystyy tarkistamaan ja poistamaan varapalvelimen tiedostot ja hakemistot, jotka on poistettu pääverkkopalvelimesta.
  3. Se huolehtii käyttöoikeuksista, omistajuuksista ja erityisattribuuteista kopioidessaan tietoja etänä.
  4. Se tukee myös SSH-protokollaa tietojen siirtämiseen salatulla tavalla, jotta voit olla varma, että kaikki tiedot ovat turvallisia.
  5. Rsync käyttää pakkaus- ja purkumenetelmää siirtäessään vähemmän kaistanleveyttä kuluttavaa dataa.

Kuinka synkronoida kaksi Apache-palvelinta

Aloitetaan asettamalla rsync verkkopalvelimesi peilin luomiseksi. Tässä käytän kahta palvelinta.

  1. IP-osoite: 192.168.0.100
  2. Isäntänimi: verkkopalvelin.esimerkki.fi

  1. IP-osoite: 192.168.0.101
  2. Isäntänimi: backup.example.com

Tässä tapauksessa webserver.example.com-palvelimen tiedot peilataan osoitteessa backup.example.com. Ja tekemään niin ensin, meidän on asennettava Rsync molempiin palvelimiin seuraavan komennon avulla.

 yum install rsync        [On Red Hat based systems]
 apt-get install rsync    [On Debian based systems]

Voimme määrittää rsyncin juurikäyttäjän kanssa, mutta turvallisuussyistä voit luoda etuoikeutetun käyttäjän pääverkkopalvelimelle eli webserver.example.com suorittamaan rsyncin.

 useradd tecmint
 passwd tecmint

Täällä olen luonut käyttäjän “tecmint” ja määrittänyt käyttäjälle salasanan.

On aika testata rsync-asetukset varmuuskopiointipalvelimellasi (eli backup.example.com) ja tehdä se kirjoittamalla seuraava komento.

 rsync -avzhe ssh [email :/var/www/ /var/www
[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

Voit nähdä, että rsync toimii nyt täysin hyvin ja synkronoi tietoja. Olen käyttänyt tiedostoa "/ var/www" siirtämiseen; voit muuttaa kansion sijaintia tarpeidesi mukaan.

Nyt olemme suorittaneet rsync-asetukset ja nyt on aika asettaa cron rsyncille. Koska aiomme käyttää rsynciä SSH-protokollan kanssa, ssh pyytää todentamista, ja jos emme anna salasanaa cronille, se ei toimi. Jotta cron toimisi sujuvasti, meidän on määritettävä salasanattomat ssh-kirjautumistunnukset rsyncille.

Tässä tässä esimerkissä teen sen pääkäyttäjänä myös tiedostojen omistajuuden säilyttämiseksi, voit tehdä sen myös vaihtoehtoisille käyttäjille.

Ensin luomme julkisen ja yksityisen avaimen seuraavilla komennoilla varmuuskopiointipalvelimella (eli backup.example.com).

 ssh-keygen -t rsa -b 2048

Kun kirjoitat tämän komennon, älä anna salasanaa ja napsauta Tyhjä salasana -kohtaa, jotta rsync cron ei tarvitse salasanaa tietojen synkronointiin.

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

Nyt julkinen ja yksityinen avain on luotu, ja meidän on jaettava se pääpalvelimen kanssa, jotta pääverkkopalvelin tunnistaa tämän varmuuskopiokoneen ja antaa sen kirjautua sisään pyytämättä salasanaa tietojen synkronoinnin aikana.

 ssh-copy-id -i /root/.ssh/id_rsa.pub [email 

Yritä nyt kirjautua koneeseen ”ssh’ [email ’” -toiminnolla ja kirjaa sisään .ssh/authorised_keys.

 [email 

Nyt olemme valmiit jakamaan avaimet. Jos haluat tietää tarkemmin SSH-salasanasta vähemmän kirjautumista, voit lukea siitä artikkelimme.

  1. SSH-salasanainen kirjautuminen sisään 5 helpossa vaiheessa

Perustetaan cron tälle. Määritä cron avaamalla crontab-tiedosto seuraavalla komennolla.

 crontab –e

Se avaa/etc/crontab -tiedoston muokattavaksi oletuseditorilla. Tässä Tässä esimerkissä kirjoitan cronin suorittamaan sen 5 minuutin välein tietojen synkronoimiseksi.

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

Yllä oleva cron- ja rsync-komento yksinkertaisesti synkronoi ”/ var/www /” pääverkkopalvelimesta varmuuskopiointipalvelimeen 5 minuutin välein. Voit muuttaa ajan ja kansion sijainnin määrityksiä tarpeidesi mukaan. Jos haluat olla luovempi ja mukauttaa Rsync- ja Cron-komennoilla, tutustu tarkempiin artikkeleihimme:

  1. 10 Rsync-komentoa tiedostojen/kansioiden synkronointiin Linuxissa
  2. 11 Cron Scheduling -esimerkkiä Linuxissa