Как заставить пользователей из США перейти на сервер США, а посетителей из Великобритании - на сервер Великобритании?

26

Если у меня один домен с посетителями из США и Европы, а также 2 сервера, один в США и один в Великобритании, как я могу заставить пользователей из США перейти на сервер США, а посетителей из Великобритании - на сервер в Великобритании? Чтобы уменьшить пинг посетителей?

Прежде всего это возможно? И почему такие компании, как Google, имеют разные домены для каждой страны?

Luka
источник
+1 За «Хороший вопрос о доставке»
AminM
14
Возможно, стоит упомянуть - если на двух серверах имеется разное содержимое, убедитесь, что пользователи могут переопределить настройки по умолчанию и, при необходимости, обратиться к другому серверу. В какой-то момент, по какой-то странной причине, блок IP-адресов, который использовала моя компания, был классифицирован как находящийся в Испании, а не в Великобритании. Компании, чьи веб-страницы настаивали на том, чтобы я перешел на испанский сайт, а не на английский, без какой-либо скрытой ценности, - это компании, с которыми я больше не имею дела.
Damien_The_Unbeliever
15
Я переехал из США в ЕС и этот материал сводит меня с ума . Если у вас есть зеркала с одинаковым содержанием, обязательно отправьте меня в ближайшее. Но в большинстве случаев это не одно и то же содержание, и я обращаюсь к тому, на которое собираюсь по определенной причине. Я знаю, в какой стране я нахожусь, и в какой я буду на следующей неделе - но ваш сайт не знает. В любом случае, я могу заставить ваш сайт думать, что я где угодно. Вместо «силы» думайте «предлагайте» - ИМХО.
Роб П.
7
А потом есть транснациональные корпорации. Я работал в голландском офисе британского филиала европейского подразделения со штаб-квартирой в Германии американской компании, где наши внешние IP-адреса были из французского блока. Ненавижу иметь половину интернета, полагая, что я был во Франции и настаивал на предоставлении локализованного контента.
С

Ответы:

22

И почему такие компании, как Google, имеют разные домены для каждой страны?

Потому что это облегчает иметь ОТДЕЛЬНЫЙ КОНТЕНТ для каждой страны. Содержимое должно быть статичным - поэтому, если вы хотите, чтобы английские и, например, испанские страницы были проиндексированы, они должны иметь отдельные URL-адреса. Один путь example.com/en- другой en.example.com. Позднее весы лучше.

Прежде всего это возможно?

Не для тебя. Вам нужен поставщик, который поддерживает маршрутизацию anycast.

Чтобы сделать это самостоятельно, вам нужны собственные IP-адреса с международной маршрутизацией, которые невозможно получить для обычного пользователя, поскольку наименьший назначенный блок - это более 4000 адресов (которые вы должны использовать), а затраты высоки.

Если бы вы получили один, вы бы получили маршрутизацию как AS (автономная система) и просто публиковать маршруты, идущие к ближайшему серверу.

Так что не для тебя. Но некоторые хосты могут поддерживать это.

CDN делают это, так что вы точно можете перенести свои статичные вещи в сеть доставки контента.

То, что вы можете сделать, это префиксы стран, а затем перенаправить их с основного домена.

TomTom
источник
Спасибо. Итак, чтобы сделать то, что я ищу, мне нужен домен, сервер в каждой стране и CDN, верно?
Лука
1
Не совсем, вы можете обрабатывать все euopre с одного сервера;) «каждая страна» может быть немного сложнее. Каждый регион (США, ЕС). CDN не обязателен - я бы его пропустил. Но отдельные домены и серверы - самое дешевое решение.
TomTom
CDN действительно стоит того? Я имею в виду, что пинг из США в Японию составляет около 500 мс. Не слишком ли это много?
Лука
1
Ответ TomTom начинается хорошо, но заканчивается довольно резко, без учета проблем и ограничений. Если вам явно не нужно публиковать разный контент в разных местах, наиболее управляемым и недорогим решением будет обслуживать не кешируемый HTML / AJAX из одного места и все остальное через хороший CDN - но ПРОЧИТАЙТЕ ЭТО ПЕРВОЕ: cdnplanet.com/ blog / which-cdns-support-edns-client-subnet (обратите внимание, что это относится и к хостингу
Anycast
2
Шаг за шагом? Шаг 1: Наймите профессионала, который сделал это. Шаг 2: следуйте его инструкциям.
TomTom
13

+1 за маршрутизацию anycast как «реальное решение».

Более простой альтернативой является предоставление разных записей DNS для каждого континента. Amazon продает это как маршрутизацию на основе задержки, но я предполагаю, что другие крупные провайдеры DNS предлагают аналогичные инструменты.

mschuett
источник
11

Некоторые люди упоминают CDN как решение. Тебе это не нужно. Все, что вам нужно, это чтобы официальный DNS-сервер вашего домена выбрал оптимальный сервер для данного пользователя в зависимости от того, откуда поступает его DNS-запрос (и, возможно, от текущей нагрузки). Например, Akamai, в то же время являясь крупнейшим CDN, предлагает продукт под названием Global Traffic Management, который полностью отделен от своих предложений CDN и предоставляет именно эту услугу (за плату). Это достигается за счет того, что он становится авторитетным DNS-сервером для различных доменов, которые вы администрируете, а затем для входящих DNS-запросов он раздает IP-адреса ваших веб-серверов, правильно учитывая нагрузку и локальность.

Если ваши серверы не могут справиться с вашей нагрузкой (и вы не хотите покупать и администрировать больше), тогда вам нужен CDN, но это не похоже на вашу проблему.

Томас Хигдон
источник
8

Вы можете использовать anycast маршрутизацию. У Google, например, есть DNS-серверы, такие как 8.8.8.8, которые являются различными серверами в зависимости от того, где вы находитесь.

Вы также можете использовать сеть доставки контента для ваших статических данных.

И разные домены для каждой страны предоставляют вам другие преимущества, но это не поможет, если все ваши посетители используют один домен, конечно.

Halfgaar
источник
1
А так как «вы» не можете использовать anycast-маршрутизацию (слишком высокие требования для обычного пользователя) - найдите провайдера, который его поддерживает.
TomTom
В конце концов, я не понимаю, почему Google использует разные домены. Они делают это только для пинга между странами?
Лука
@Лука - это не имеет ничего общего с "пинг". Это связано с управлением их сетью / серверами И дает пользователям ощущение знакомства. Если вы собираетесь на локализованный сайт с кодом страны, вам будет тепло и уютно. Маркетинг.
ETL
@ETL Самая важная часть этого, однако, не связана с маркетингом, она заключается в том, чтобы пользователи могли получать контент на языке, который они могут читать, а пользователь, который говорит только по-немецки, не хотел бы попасть на целевую страницу на английском языке. ,
Vality
3

Вы также можете посмотреть в Балансировка нагрузки в зависимости от местоположения близости . В качестве альтернативы можно проверить ускорители доставки, такие как Fastly.

Питер
источник
2

Что вам нужно, это географическая балансировка нагрузки . Это очень сложная, нетривиальная проблема. Принятый ответ неверен. Ты можешь это сделать. Была страница, которую я недавно видел со скриптом, который измеряет пинг пользователей и отправляет их на ближайший сервер. Я думаю, что это было это: http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.geographically_distributed.html

Кроме того, F5 Networks продает географический маршрутизатор с балансировкой нагрузки, но это дорого.

Хлоя
источник
1

Вы также можете посмотреть на http://www.neustar.biz/services/dns-services/managed-dns-packages . Я думаю, что пакет Enterprise поддерживает то, что они называют «Региональная маршрутизация», и это было бы вашим решением. Как и в случае с предложением Akamai, служба DNS достаточно умна, чтобы указывать на географически ближайший IP-адрес.

Петр
источник
1

Если вы ищете решение для распределения нагрузки, я бы порекомендовал облачный хостинг / провайдеров облачных услуг.

Облачные хостинговые серверы спроектированы таким образом, чтобы выполнять те же процессы, что и вы, путем маршрутизации к самому близкому хост-кластеру.

Надеюсь, что это может помочь в некотором роде.

Tarique
источник