Kā sinhronizēt divus Apache tīmekļa serverus/vietnes, izmantojot Rsync


Tīmeklī ir tik daudz apmācību, lai spoguļotu vai izveidotu tīmekļa failu dublējumu ar dažādām metodēm. Šeit es izveidoju šo rakstu savai nākotnes atsaucei, un šeit es izmantoju ļoti vienkāršu un daudzpusīgu Linux komandu, lai izveidotu dublēt jūsu vietni. Šī apmācība palīdzēs jums sinhronizēt datus starp diviem tīmekļa serveriem ar “Rsync”.

Tīmekļa servera spoguļa izveide ar Rsync ir tāda, ka, ja jūsu galvenais tīmekļa serveris neizdodas, dublējumkopijas serveris var to pārņemt, lai samazinātu jūsu vietnes dīkstāvi. Šis tīmekļa servera dublējuma izveidošanas veids ir ļoti labs un efektīvs maziem un vidējiem interneta uzņēmumiem.

Tīmekļa serveru sinhronizācijas priekšrocības

Tīmekļa servera dublējuma izveidošanas ar rsync galvenās priekšrocības ir šādas:

  1. Rsync sinhronizē tikai tos baitus un datu blokus, kas ir mainījušies.
  2. Rsync spēj pārbaudīt un dzēst dublējuma serverī esošos failus un direktorijus, kas ir izdzēsti no galvenā tīmekļa servera.
  3. Attālināti kopējot datus, tā rūpējas par atļaujām, īpašumtiesībām un īpašiem atribūtiem.
  4. Tas arī atbalsta SSH protokolu datu pārsūtīšanai šifrētā veidā, lai jūs būtu drošs, ka visi dati ir droši.
  5. Rsync izmanto saspiešanas un dekompresijas metodi, vienlaikus pārsūtot datus, kas patērē mazāk joslas platuma.

Kā sinhronizēt divus Apache tīmekļa serverus

Turpināsim iestatīt rsync, lai izveidotu jūsu tīmekļa servera spoguli. Es izmantošu divus serverus.

  1. IP adrese: 192.168.0.100
  2. resursdatora nosaukums: webserver.example.com

  1. IP adrese: 192.168.0.101
  2. resursdatora nosaukums: backup.example.com

Šajā gadījumā Webserver.example.com tīmekļa servera dati tiks atspoguļoti vietnē backup.example.com. Lai to izdarītu vispirms, mums ir jāinstalē Rsync abos serveros, izmantojot šādu komandu.

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

Mēs varam iestatīt rsync ar root lietotāju, taču drošības apsvērumu dēļ jūs varat izveidot priviliģētu lietotāju galvenajā tīmekļa serverī, ti, webserver.example.com, lai palaistu rsync.

 useradd tecmint
 passwd tecmint

Šeit esmu izveidojis lietotāju “tecmint” un piešķīris lietotājam paroli.

Ir pienācis laiks pārbaudīt rsync iestatījumus dublējuma serverī (t.i., backup.example.com) un, lai to izdarītu, lūdzu, ierakstiet šādu komandu.

 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

Var redzēt, ka jūsu rsync tagad darbojas pilnīgi labi un sinhronizē datus. Pārsūtīšanai esmu izmantojis “/ var/www”; Jūs varat mainīt mapes atrašanās vietu atbilstoši savām vajadzībām.

Tagad mēs esam pabeiguši rsync iestatījumus un ir pienācis laiks iestatīt cron rsync. Tā kā mēs izmantosim rsync ar SSH protokolu, ssh pieprasīs autentifikāciju, un, ja mēs nenorādīsim paroli, tas nedarbosies. Lai cron darbotos nevainojami, mums ir jāiestata rsync ssh pieteikšanās bez paroles.

Šajā piemērā es to daru kā sakni, lai saglabātu arī failu īpašumtiesības, to varat izdarīt arī alternatīviem lietotājiem.

Pirmkārt, mēs ģenerēsim publisko un privāto atslēgu ar šādām komandām dublējumu serverī (t.i. backup.example.com).

 ssh-keygen -t rsa -b 2048

Ievadot šo komandu, lūdzu, nenorādiet ieejas frāzi un noklikšķiniet uz Enter tukšai ieejas frāzei, lai rsync cron nevajadzētu paroli datu sinhronizēšanai.

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

Tagad ir izveidota mūsu publiskā un privātā atslēga, un mums tā būs jādala ar galveno serveri, lai galvenais tīmekļa serveris atpazītu šo dublēšanas mašīnu un ļautu tai pieteikties, neprasot paroli, sinhronizējot datus.

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

Tagad mēģiniet pieteikties mašīnā, izmantojot “ssh‘ [email ’”, un reģistrējieties .ssh/authorised_keys.

 [email 

Tagad mēs esam paveikuši koplietošanas atslēgas. Lai uzzinātu padziļināti par SSH paroli, mazāk piesakoties, varat izlasīt mūsu rakstu par to.

  1. Pieteikšanās SSH bez paroles 5 vienkāršās darbībās

Uzstādīsim tam kronu. Lai iestatītu cron, lūdzu, atveriet crontab failu ar šādu komandu.

 crontab –e

Tas atvērs failu/etc/crontab, kuru rediģēt ar noklusējuma redaktoru. Šeit Šajā piemērā es rakstu cron, lai to palaistu ik pēc 5 minūtēm, lai sinhronizētu datus.

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

Iepriekš minētā cron un rsync komanda ik pēc 5 minūtēm vienkārši sinhronizē “/ var/www /” no galvenā tīmekļa servera uz rezerves serveri. Laika un mapes atrašanās vietas konfigurāciju var mainīt atbilstoši savām vajadzībām. Lai būtu radošāks un pielāgotu komandu Rsync un Cron, varat apskatīt mūsu detalizētākus rakstus vietnē:

  1. 10 Rsync komandas failu/mapju sinhronizēšanai operētājsistēmā Linux
  2. 11 Linux plānošanas piemēri Linux