Как сделать чтобы сайт грузился у юзера с ближайшего к нему сервера?
Есть сайт, который посещают люди со всего мира. Сервер находится в Германии, соответственно, у людей из США или скажем Австралии довольно высокое время первого отклика. Хотелось бы иметь несколько серверов в разных местах, и чтобы сайт грузился с ближайшего к юзеру сервера.
Какие существуют решения на этот счет? Мне известно про CDN, однако они для статического контента, а страницы сайта генерируются динамически.
Работает только в лабараторных/тепличных условиях, внутри локальный сетей.
Причина: иерархическая система организации DNS, кэширование DNS.
Поставить маленькое время жизни кэширования записи DNS - тоже не поможет, многие роутеры этот параметр вообще игнорируют.
Александр Аксентьев,
там по сути написано, что "есть надежда, что, скорее всего, возможно, большинство использует DNS провайдера, который географически ближе".
1) скорее всего, возможно - нет уверенности.
2) для крупных провайдеров не работает
Пример:
Я в Сибири сейчас. Мой общероссийский провайдер имеет головной офис в Питере. Я везде определяюсь как находящийся в Питере.
И это не редкость.
И с крупными провайдерами и с мобильным интернетом (а это сейчас 60% трафика) - так очень даже часто.
А еще - нужно определять как-то место нахождения IP, чтобы отдавать правильное зеркало.
Тут и по стране не всегда есть гарантия
У меня есть сервера у крупного европейского хостера. Расположены в одном и том же датацентре. Но у одного IP французский, у другого - ирландский, у третьего - немецкий.
С маршрутизацией и принадлежностью IP сейчас все очень запутано.
Тот комментарий - это работает только для крупных городов и мелких провайдеров.
Несколько записей A/ААА в DNS.
Браузер отправляет запрос на все сервера, кто первый ответит из списка серверов - с тем в дальнейшем и происходит общение.
А для статики, для тяжелого контента (видео, фото) - есть специализированные решения CDN
На самом деле вы зря так про статику. CDN может не кэшировать контент или кэшировать на короткий срок. Тут бонус в том что если вы, например, в AWS, то там вся сеть связана широкополосным доступом и вся передача контента сравнительно мала по сравнением со временем генерации этого контента и точно быстрее свяжи между клиентом и самим CDN.