NightmareZz
@NightmareZz
Нищий разработчик из Симферополя

Как работает CDN?

Подскажите, что лежит в основе работы CDN, имеющих сервера в разных странах. Если конкретнее, меня интересует реализация следующего момента. Например, я покупаю несколько VPS, расположенных в разных уголках мира, регистрирую доменное имя вида my-cool-cnd.net, выкладываю на сервера нужные мне ресурсы, которые я хочу, чтобы пользователь качал с того сервера, который к нему ближе. Но ведь доменное имя кастуется в один ip!? А я хочу, чтобы оно кастовалось в ip того сервера, который ближе к текущему пользователю. Более того, я хотел бы этот процесс вручную запрограммировать. Как это делается?
  • Вопрос задан
  • 552 просмотра
Пригласить эксперта
Ответы на вопрос 1
@yaror
10 лет в мобильном телекоме
Ну, вообще-то, одному DNS-имени может соответствовать и несколько ip-адресов...

А вообще, варианты, сходу:
1. Кто мешает DNS-серверу отвечать разными ip-адресами на основании GeoIP-данных отправителя DNS-запроса?

2. А почему бы не завести "сортировщик" запросов, полагаясь на средства самого HTTP?
Пусть пользователь пытается загрузить некий файл my-cool-cnd.net/file. Тогда:
2.1. HTTP-сервер, поднятый на my-cool-cnd.net, через GeoIP видит, что пользователь находится в Европе и отвечает HTTP-кодом 307 Temporary Redirect, Location: europe.my-cool-cnd.net/file
Что важно, на my-cool-cnd.net никаких файлов может не быть вовсе - только скрипт-редиректор.
2.2. Пользователь радостно загружает europe.my-cool-cnd.net/file

3. Вообще дикий вариант, который, тем не менее, иногда используется: каждый региональный узел CDN по BGP анонсирует один и тот же ip-адрес. В таком случае, с какого именно узла CDN пойдёт загрузка, решается силами ip-маршрутизации, исходя из принципа выбора AS Path минимальной длины.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы