Jak sprawnie przenieść serwis www z serwera na serwer ?

Z tym jest zawsze problem. Przeniesienie plików, baz danych itd jest zwykle  przeprowadzane dość sprawnie – szczególnie w przypadku mniejszych serwisów. Podobnie prosto przenosi się konta e-mail.

Problem zaczyna się w momencie przepięcia domeny. System DNS działa w ten sposób, że domena jest utrzymywana przez co najmniej dwa serwery DNS. Wchodząc na stronę www komputer klienta odpytuje dedykowanych mu DNS-ów (pobieranych zwykle automatycznie razem z konfiguracją adresu IP, bramki i maski sieciowej w komputerze klienckim). Dedykowane DNS-y dla danej sieci sprawdzają jakie serwery DNS utrzymują tą konkretną domenę. DNSy lokalne pytają jeden z serwerów DNS utrzymujący domeny (tzw. authoritative) na jakim IP znajduje się zawartość danego serwisu www. Przy okazji odczytując IP na jakim znajduje się serwis – zapisują go we własnym cache, żeby przy ponownym zapytaniu przez komputer klienta juz drugi raz nie pytać o IP. Cache trzymany jest domyślnie przez czas, jaki otrzymują od serwerów dns, które utrzymują domenę. Jest to tzw. parametr TTL (Time To Live), który domyślnie ustawiony jest na większości serwerów na 24 godziny. Zatem przed 24 godzinami serwer lokalny nie odpyta ponownie o adres IP na jakim znajduje się serwis www.

I tutaj pojawia się problem.

Po przeniesieniu strony z serwera na serwer zmieniają się:

serwery DNS, które utrzymują domenę (każdy z serwerów ma własne serwery DNS, które obsługują znajdujące się na hostingu domeny)

adres IP na który wskazują serwery DNS (czyli adres IP serwera na którym fizycznie znajdują się pliki serwisu www)

Ponieważ podczas korzystania z internetu lokalne serwery DNS w różnych sieciach dostępowych na całym świecie zapisują IP serwisu www (który otrzymały z serwerów DNS utrzymujących domenę) – adres ten jest zapisywany do lokalnego cache. Problem jest tylko taki, że różne serwery zapiszą adres IP serwera do cache w różnym czasie – zależnym od tego kiedy klient z danej sieci wpisze adres domeny klient w komputerze.

Stąd właśnie pojawia się ogólne stwierdzenie, że zmiany w serwach DNS propagują się w internecie do 24 godzin – tak naprawdę dla każdej sieci dostępowej będzie to inna wartość zależnie od tego jak dawno zaczął się czas kiedy IP serwera zostało zapisane do cache i ile czasu już upłynęło.

Jak zatem zmienić IP szybko ? Stosunkowo prosto, niemniej trzeba dokonać kilka prostych operacji:

Ponieważ najczęściej serwery DNS mają ustawione czas TTL na 24 godziny to operację przeniesienia serwisu z serwera na serwer należy zacząć ok dobę przed planowanym przepięciem.

Występują:

stary_serwer – serwer w sensie adresu IP na którym znajdują się pliki serwisu www przed przeniesieniem

nowy_serwer – serwer w sensie adresu IP na którym będą docelowo znajdować się pliki serwisu www po przeniesieniu

stare_serwery_dns – serwery DNS, które utrzymują domenę na starym_serwerze i wskazują na IP starego_serwera

nowe_serwery_dns – serwery DNS, które będą utrzymywać domenę na nowym_serwerze i wskazują na IP nowego_serwera

Należy kolejno:

  1. założyć hosting, wgrać pliki, założyć konta e-mai i na nim skonfigurować domenę którą będziemy przenosić (skonfigurowanie domeny na hostingu powoduje najczęściej automatyczne dopisanie jej do nowych_serwerów_dns które wskazują od razu automatycznie na nowy_serwer
  2. Odczytać adres IP starego_serwera (np. przez wydanie polecania „ping domena”
  3. Wyedytować plik strefy DNS na nowym_serwerze zmieniając adres IP dla rekordu A z nowego_serwera na stary_serwer. Dzięki temu nowe_serwery_dns będą wskazywały na stary_serwer a nie na nowy_serwer
  4. Wyedytować plik strefy DNS na nowym_serwerze zmieniając parametr TTL z domyślnych 24 godzin na np. 5 minut (300 sekund). Dzięki temu zabiegowi serwery, które pobrały adres IP domeny będą trzymały go w cache tylko przez 5 minut, po tych 5 minutach przy klejnym żądaniu klienta będą znowu odwoływać się do serwerów DNS obsługujących domenę.
  5. Zmienić w rejestratora domeny serwery dns obsługujące domenę ze starych_serwerów_dns na nowe_serwery_dns. Należy tutaj zwrócić uwagę, że pomimo zmiany na nowe_serwery_dns serwis nadal wczytywany jest ze starego_serwera, bo nowe_serwery_dns też wskazują na adres IP starego_serwera.
  6. Zostawiamy taką konfiguracją na 24 godziny. Po nich mamy praktycznie pewność, że wszystkie serwery na świecie, które miały w cache domenę mają już ustawiony czas TTL nie 24 godziny, ale 5 minut – zatem po 5 minutach będą odpytywać serwery DNS (dokładne nowe_serwery_dns) o aktualne IP serwera
  7. po 24 godzinach możemy przenieść pliki, bazy danych, i założyć e-mail na nowym_serwerze.
  8. Należy wyedytować plik strefy domeny na nowym_serwerze zmieniając rekord A (ten zmieniany wcześniej) – zmieniając IP starego_serwera na IP nowego_serwera.
  9. Po edycji pliku strefy automatycznie zmieni się to IP na nowych_serwerach_dns
  10. Po tych operacjach zmiana IP ze starego_serwera na nowy_serwer powinna być zauważalna przez cały świat nie po 24 godzin, ale maksymalnie po 5 minutach

Uwagi:

  1. Niektóre serwery DNS nie biorą pod uwagę parametry TTL przekazywanego w plikach strefy. Jednym z takim serwerów jest klaser serwerów o nazwie: dns2.tpnet.pl (czyli jeden z dnsów Telekomunikacji Polskiej S.A.)
  2. We względu na fakt, że niektóre serwery pomijają parametr TTL warto po kilku godzinach odebrać pocztę e-mail ze starego_serwera (np odwołując się do niego po po adresie IP, bo domena już wskazuje na nowy_serwer) – czasami jakaś poczta jeszcze przychodzi.
  3. Po przeniesieniu i odebraniu poczty ze starego_serwera warto usunąć konto lub choć odparkować domenę i usunąć konta e-mail na starym_serwerze – dlaczego ? Bo serwery pocztowe wysyłając pocztę najpierw sprawdzają czy domena do której mają wysłać pocztę nie jest lokalna na tym samym serwerze – zatem może się zdarzyć, że u dużych dostawców na jednym serwerze najdzie się nadawca maila, który będzie próbował wysłać e-mai – i ten e-mail trafi lokalnie na starym_serwerze, pomimo, że wszystkie serwery (oprócz tego starego_serwera – lokalnie) będą widzieć domenę na nowym_serwerze
  4. Żeby wykonać powyższe operacje trzeba mieć dostęp do edytora plików stref DNS. W wielu firmach jest to standardowa usługa w panelu zarządzania hostingiem. Standardowo jest to usługa dostępna w hostingach opartych o panel cPanel.
  5. Powyższą zmianę można zrobić samemu, albo poprosić nowego operatora, do którego przenosi się hosting.
Wojciech Babicz

Dodaj komentarz