Potrzebujesz taniej, bezpiecznej i profesjonalnie wykonanej strony?

Zapraszam do kontaktu!

Git na dziś

git status pokazuje stan lokalnego repozytorium.

Aktualizacja DNS przy zmianie serwera

Tags: Apache2 | DNS

Jak wiadomo propagacja DNS może potrwać około 24 godziny. Jak zatem bezawaryjnie przełączyć stronę na nowy serwer aby zminimalizować downtime i serwować zawsze aktualną wersję? Jest na to dość prosty sposób.

Użyjemy modułu mod_proxy dla Apache2 (a2enmod proxy_http). Po krótce przedstawię kilka kroków jakie należy wykonać.

Na początek na nowym serwerze instalujemy virtualhost z domeną.

Teraz na starym serwerze:

  • zatrzymujemy apache2
  • robimy zrzut bazy danych przez mysql_dump -h localhost -u USER -pPASSWORD NAZWA_BAZY > db-domena.sql
  • modyfikujemy wpis virtual host dodając obsługę proxy:
    ProxyPreserveHost On
    ProxyPass / http://IP.NOWEGO.SERWERA/
    ProxyPassReverse / http://IP.NOWEGO.SERWERA/

Po wykonaniu powyższych kroków na nowym serwerze:

  • kopiujemy wszystkie pliki łącznie z dump bazy danych, np przy użyciu RSYNC, SCP lub FTP
  • importujemy bazę:
    mysql -h localhost -u USER -pPASSWORD NAZWA_BAZY < db-domena.sql
  • zmieniamy w plikach konfiguracyjnych strony dane dostępowe do bazy i ścieżkę instalacyjną (jeżeli się różnią)

Wystarczy już tylko uruchomić apache2 na starym serwerze i automatycznie każdy, kto ma stary wpis DNS i tak jest kierowany przez proxy na nowy serwer. Minusem tego rozwiązania jest to, że w logach mamy IP starego serwera jako odwiedzającego stronę. Być może jest sposób na przekazanie adresu użytkownika do serwera docelowego?

Teraz spokojnie można zmienić wpisy DNS i przekierować domenę na nowy serwer, usunąć pliki ze starego. Po dwóch - trzech dniach można również wyczyścić virtualhost z oryginalnego serwera.