Jak skierować domenę na reverse proxy: rekordy DNS w praktyce


W tym artykule
Żeby skierować domenę na reverse proxy, podmieniasz w rekordzie A domeny (i w rekordzie AAAA, jeśli korzystasz z IPv6) adres IP serwera źródłowego na adres IP proxy. Od tej chwili proxy przekazuje każde żądanie do Twojego serwera. Na papierze proste. Poniżej: które rekordy zmienić, dlaczego najpierw obniżyć TTL, jak przełączyć się bez przestoju i co sprawdzić na koniec.
Co się dzieje, gdy kierujesz domenę na reverse proxy?
Odwiedzający i roboty wyszukiwarek dostają teraz dla domeny adres IP proxy, a proxy przekazuje każde żądanie na adres IP serwera źródłowego, którego nikt z zewnątrz nie musi już widzieć. Szybko dwa pojęcia. Serwer źródłowy (origin) to maszyna, na której faktycznie stoi strona. Reverse proxy to publiczne wejście: najpierw przyjmuje ruch, a potem przekazuje go dalej.
Samo rozwiązywanie nazw jest nudne (i dobrze). Resolver odwiedzającego pyta autorytatywny serwer nazw o domenę, dostaje rekord i trzyma go przez jakiś czas w pamięci podręcznej. To cache’owanie jest wpisane w to, jak DNS rozwiązuje nazwy. I właśnie dlatego zmiana DNS nigdy nie dociera wszędzie jednocześnie.
Które rekordy DNS trzeba zmienić?
Zwykle tylko rekord A dla domeny głównej i www, plus AAAA, jeśli domena ma IPv6. Cała reszta zostaje bez zmian.
- Rekord A dla reverse proxy: skieruj domenę główną (@) i www na adres IPv4 proxy.
- www jako CNAME: albo skieruj www na domenę główną, wtedy edytujesz tylko jeden rekord A.
- Rekord AAAA: skieruj go na adres IPv6 proxy.
- Nie ruszaj: MX, TXT i SPF, kluczy DKIM ani żadnych rekordów weryfikacyjnych.
Na rekordzie AAAA ludzie najczęściej się potykają. Zapomnisz o starym, wskazującym na serwer źródłowy, i każdy odwiedzający przez IPv6 ominie proxy. Zaktualizuj go więc albo usuń, jeśli proxy nie ma adresu IPv6. Subdomeny typu mail., ftp. czy cpanel., które nadal wskazują na serwer źródłowy, też zdradzają jego adres. Przejrzyj je po kolei i zdecyduj, co z każdą zrobić.
Obniż TTL w DNS przed przełączeniem
Obniż TTL rekordów, które zamierzasz zmienić, sporo przed przełączeniem, żeby po aktualizacji resolvery szybko porzuciły stary adres IP. TTL (time to live) to czas, przez jaki resolver może trzymać odpowiedź w pamięci podręcznej.
Najpierw sprawdź, co masz teraz: dig example.com A. Liczba obok rekordu to pozostały TTL. Obniż go w panelu DNS. Potem czekaj. Co najmniej tyle, ile wynosił stary TTL, bo cache trzyma wcześniejszą wartość, dopóki ta nie wygaśnie. Gdy proxy działa już bez niespodzianek, podnieś TTL z powrotem, żeby ograniczyć liczbę zapytań.
Jak przełączyć DNS na proxy bez przestoju
Skonfiguruj i przetestuj proxy, zanim dotkniesz DNS, tak żeby zmiana rekordu była ostatnim krokiem, a nie pierwszym.
- Dodaj domenę i adres IP serwera źródłowego w panelu proxy. W Jalvo możesz skonfigurować reverse proxy na NGINX z adresami IP w UE lub w USA i kierować domeny z jednego panelu.
- Upewnij się, że serwer źródłowy faktycznie odpowiada na żądania przychodzące z adresu proxy.
- Przetestuj ruch przez proxy przed przełączeniem:
curl --resolvealbo wpis w pliku hosts przypisujący domenę do IP proxy. - Zaktualizuj rekordy A i AAAA.
- Odpytaj kilka publicznych resolverów przez
dig @resolver example.comi porównaj odpowiedzi. - Obserwuj logi serwera źródłowego, aż zaczną się w nich pojawiać żądania z IP proxy.
Przez cały ten czas trzymaj serwer źródłowy włączony pod starym adresem. Każdy, czyj resolver ma jeszcze ten adres w cache, nadal trafi na stronę, zanim nowy rekord się rozejdzie. Bez przerwy w działaniu i bez gniewnych maili.
Jak ukryć adres IP serwera źródłowego?
Gdy proxy już działa, dopuść na serwerze źródłowym HTTP i HTTPS tylko z adresów IP proxy. Inaczej stary adres zostaje bocznym wejściem z pominięciem proxy. Wystarczy jedna reguła firewalla na serwerze źródłowym.
Czy to wszystko? Nie do końca. Adres może nadal wyciec przez historyczne rekordy DNS, subdomeny wskazujące na serwer źródłowy i nagłówki maili wysyłanych z tego serwera. Na własnym NGINX-ie na serwerze źródłowym loguj prawdziwy adres IP klienta z nagłówka ustawianego przez proxy. I sprawdź na prawdziwym żądaniu, który nagłówek faktycznie dociera, zamiast zgadywać jego nazwę (tu ludzie mylą się częściej, niż mogłoby się wydawać).
Adresy IP widziane przez odwiedzających i roboty też niosą własne sygnały, więc warto przyjrzeć się rekordom reverse DNS i PTR. Zmieniasz adresy dla kilku domen naraz? Nasz poradnik o przenoszeniu stron na nowe IP omawia stronę SEO.
Lista kontrolna po skierowaniu domeny na reverse proxy
Gotowe, gdy każdy sprawdzany resolver zwraca IP proxy, strona odpowiada przez HTTPS za pośrednictwem proxy, a serwer źródłowy przyjmuje ruch wyłącznie z proxy.
- Rekordy A i AAAA zwracają adres proxy.
- Certyfikat SSL na proxy jest ważny dla domeny głównej i www.
- Przekierowania i tagi canonical działają dokładnie tak jak wcześniej.
- Poczta normalnie wychodzi i przychodzi.
- TTL wrócił do zwykłej wartości.
Jedna rzecz do zapamiętania? Kolejność. Najpierw obniżasz TTL, testujesz przez curl --resolve i dopiero wtedy zmieniasz rekord. W takiej kolejności skierujesz domenę na reverse proxy tak, że odwiedzający niczego nie zauważą. Więcej na ten temat znajdziesz w naszych artykułach o technicznym SEO i hostingu.
FAQ
Ile trwa, zanim zmiany DNS dotrą do wszystkich odwiedzających?
u003cpu003eZależy od TTL, jaki rekord miał przed zmianą, i od tego, jak resolvery obchodzą się ze swoim cache. Wcześniejsze obniżenie TTL skraca okres przejściowy, bo kopie starego adresu IP w cache szybciej wygasają.u003c/pu003e
Czy przy kierowaniu domeny na reverse proxy trzeba zmieniać rekordy MX?
u003cpu003eNie. Poczta idzie według rekordów MX, a nie rekordu A strony, więc ich nie ruszaj. Sprawdź jednak, czy nazwa hosta poczty nie wskazuje na serwer źródłowy i nie zdradza jego adresu.u003c/pu003e
Co się stanie, jeśli zapomnę o rekordzie AAAA?
u003cpu003eKlienci IPv6 nadal łączą się bezpośrednio z serwerem źródłowym i omijają proxy. Skieruj rekord AAAA na adres IPv6 proxy albo usuń go, jeśli proxy takiego adresu nie ma.u003c/pu003e
Daj każdej stronie własne IP.
Pierwszą domenę dodasz w kilka minut.


