Veebisaidi kolimine uude VPS-i: rsync ja andmebaasi dump
Saidi kolimine uude serverisse taandub kolmele asjale: kopeerida failid, viia üle andmebaas ja lülitada ümber domeen. Kui teha kõik järjekorras ja kontrollida sait üle enne DNS-i vahetust, möödub migratsioon peaaegu ilma seisakuta.
Migratsiooni plaan
- Valmista ette uus VPS (veebiserver, PHP, andmebaas).
- Kopeeri saidi failid
rsync-iga. - Vii andmebaas üle dumbiga.
- Kontrolli sait uues serveris IP järgi.
- Lülita DNS ümber ja oota selle levimist.
Samm 1. Uue serveri ettevalmistus
Paigalda sama keskkond, mis on vanas serveris (näiteks LEMP), ning loo tühi andmebaas ja kasutaja. Seadista serverite vahel SSH-ligipääs — mugav on genereerida võti vanas serveris ja lisada see uude:
ssh-keygen -t ed25519
ssh-copy-id user@NEW_SERVER_IP
Samm 2. Failide kopeerimine rsynciga
rsync kannab üle ainult muutunud failid ja säilitab õigused. Käivita vanas serveris:
rsync -avz --progress /var/www/example.com/ \
user@NEW_SERVER_IP:/var/www/example.com/
Lipud: -a säilitab õigused, omanikud ja sümbollingid, -z pakib andmed ülekandeks, -v annab üksikasjaliku väljundi. Kaldkriips allika lõpus tähendab «kataloogi sisu».
Suure saidi puhul tee eelsünkroniseerimine varakult ja lõplik sünkroniseerimine vahetult enne ümberlülitust, et värsked muudatused järele tuua.
Samm 3. Andmebaasi ülekandmine
Loo vanas serveris dump. MySQL-i/MariaDB jaoks:
mysqldump --single-transaction -u root -p app_db | gzip > app_db.sql.gz
Kopeeri dump uude serverisse:
rsync -avz app_db.sql.gz user@NEW_SERVER_IP:/tmp/
Impordi see uues serveris:
gunzip < /tmp/app_db.sql.gz | mysql -u root -p app_db
PostgreSQL-i puhul on käsud analoogsed:
pg_dump -Fc app_db > app_db.dump
# uues serveris:
pg_restore -d app_db --clean app_db.dump
Samm 4. Saidi konfiguratsiooni muutmine
Uuenda rakenduse konfiguratsioonis andmebaasi ühenduse andmeid (näiteks failis wp-config.php või .env) — host, andmebaasi nimi, kasutaja, parool. Kontrolli kataloogide õigusi:
sudo chown -R www-data:www-data /var/www/example.com
Samm 5. Kontroll enne DNS-i ümberlülitust
DNS-i muutmata kontrolli saiti uues serveris, asendades domeeni oma arvuti failis hosts:
NEW_SERVER_IP example.com
(Linuxis ja macOS-is on see /etc/hosts.) Ava sait — kui kõik töötab, võib domeeni ümber lülitada. Pärast kontrolli eemalda rida failist hosts.
Samm 6. DNS-i ümberlülitus
Vähenda A-kirje TTL-i (näiteks 300 sekundile) ööpäev enne kolimist — siis levib muudatus kiiremini. Muuda A-kirje uue serveri IP-le ja jälgi:
dig +short example.com
Kuni DNS teenusepakkujate juures uueneb, läheb osa liiklusest veel vanasse serverisse — seepärast ära lülita seda välja vähemalt ööpäeva jooksul.
Kontrollnimekiri pärast kolimist
| Kontroll | Kuidas |
|---|---|
| Sait avaneb | domeeni järgi pärast DNS-i vahetust |
| Andmebaas on ühendatud | logides pole ühendusvigu |
| Failide õigused | chown www-data, üleslaadimine töötab |
| SSL | väljasta certbotiga uues serveris uuesti |
| Cron-tööd | vii crontab käsitsi üle |
Korduma kippuvad küsimused
Kuidas kolida sait ilma seisakuta?
Sünkroniseeri failid ja andmebaas varakult, kontrolli sait hosts-faili kaudu, seejärel tee lõplik sünkroniseerimine ja lülita DNS ümber. Hoia vana server ööpäeva jooksul sisselülitatuna.
rsync ei säilita õigusi — miks?
Käivita see lipuga -a (arhiivirežiim) ja piisavate õigustega kasutaja alt; omanike täielikuks säilitamiseks võib vaja minna sudo ja --numeric-ids.
Kas SSL-sertifikaat tuleb üle kanda? Lihtsam on see uues serveris certbotiga pärast DNS-i ümberlülitust uuesti väljastada — see võtab minuti.
Miks näeb osa külastajaid pärast kolimist vana saiti? DNS-i kešitakse teenusepakkujate juures vastavalt TTL-ile. Vähenda TTL-i varakult ja oota pärast kirje muutmist mõni tund.
Uue serveri jaoks vali konfiguratsioon varuga: vaata VPS-i rent, CMS-il põhinevatele saitidele sobib WordPressi VPS.