Tak, obecnie istnieją dwa popularne rozwiązania tego problemu.
Pierwszy nazywa się Anycast
, gdy ten sam blok IP jest dosłownie używany w wielu lokalizacjach na całym świecie. Oznacza to, że serwery nazw dla Twojej domeny zawsze zwracają ten sam adres IP, ale ten adres IP jest faktycznie przypisany do więcej niż jednego zestawu serwerów fizycznych.
Możesz przeczytać więcej na ten temat tutaj http://en.wikipedia.org/wiki/Anycast
Druga technika obejmuje ponownie AnyCast, jednak tym razem anycastowany zakres adresów IP odnosi się do samych serwerów nazw. Ponieważ serwery nazw będą wysyłać żądania tylko od klientów, których są najbliżsi (co określa magia BGP), mogą oni sami zwracać adresy IP logicznie lokalne dla klienta.
Przykładem tego jest domena l.google.com Google
Od gospodarza w Australii
crimson:~ dave$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com is an alias for www-notmumbai.l.google.com.
www-notmumbai.l.google.com has address 66.249.89.99
www-notmumbai.l.google.com has address 66.249.89.147
www-notmumbai.l.google.com has address 66.249.89.103
www-notmumbai.l.google.com has address 66.249.89.104
Od gospodarza w USA
[dave@odessa ~]$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.95.99
www.l.google.com has address 74.125.95.147
www.l.google.com has address 74.125.95.104
www.l.google.com has address 74.125.95.106
www.l.google.com has address 74.125.95.105
www.l.google.com has address 74.125.95.103
Tak więc nazwa CNAME dla www.google.com
rozwiązuje się www.l.google.com
, ale po rozwiązaniu tego, w zależności od lokalizacji, klient otrzymuje inny zestaw adresów IP. Jest tak, ponieważ serwer nazw, który otrzymał żądanie, www.l.google.com
był lokalnym serwerem nazw względem klienta.
Jeśli chcesz zlokalizować serwery tylko w Azji, Ameryce Północnej i Europie, możesz samodzielnie uruchomić zarówno aplikację internetową, jak i DNS.
Dzięki DNS możesz użyć czegoś takiego jak podejście DNS Split-Horizon , które można osiągnąć poprzez zintegrowaną funkcjonalność twojego serwera DNS (mogą to nazwać GeoDNS ) lub przez zaporę ogniową , która przekierowuje różne zakresy adresów IP do różnych uruchomionych instancje serwera DNS (możesz uruchomić kilka różnych kopii serwera na komputerze lokalnym, które będą nasłuchiwać na różnych lokalnych adresach IP).
Prawdopodobnie można uzyskać oczekiwane wyniki w około 90% przypadków, odpowiadając na żądania DNS z adresów IP RIPE i AfriNIC z
A
zapisem twojego hosta w Europie, żądania od APNIC - hosta w Azji oraz żądania z adresów IP z / 8 bloków administrowanych przez ARIN , LACNIC i resztę przestrzeni adresowej / 8 zA
zapisem twojego serwera w Ameryce Północnej. W niektórych sytuacjach może to mieć złe wyniki (niektóre / 8 bloków są współdzielone między Europą i Ameryką Północną, część przestrzeni adresowej to anycast itp.), Ale najgorsze, co by się wydarzyło, to dodatkowe opóźnienie dla strony, której to dotyczy, więc nie powinno to będzie wielka sprawa.(I tak, powinien istnieć sposób, aby te rzeczy były łatwiejsze, ale jak dotąd wydaje się, że nie ma.)
źródło
Miałem ten sam problem. Nasza firma ma klientów w Rosji i Chinach i wszyscy potrzebują bardzo szybkiego połączenia z naszą usługą. Użyliśmy Amazon Route 53 Geo dns i właśnie utworzyliśmy dwa rekordy, jeden przekieruje klientów z Chin do naszego klastra w regionie Tokio, a klientów z Rosji do Londynu.
źródło