Re: ближайший mirror

TDz TDz tdz at modestus.org
Sun Feb 4 16:01:55 MSK 2007


Хорошие ip->geo базы данных позволяют получить приблизительные координаты
клиента и соответственно выбрать сервер физически наиболее близкий к клиенту
(это чтоб не думать на какой сервер отправить клиента из нигерии) - но этот
способ естественно не оптимален. Если Вас не смутит потеря некоторого
времени на определение RTT то я бы просто поставил обработчик запроса и на
PHP или perl сделал опрашиватель по принципу

1. Получить IP клиента
2. Отправить IP клиента на каждый из серверов в пуле. Каждый из этих
серверов на такой запрос должен ответить средним RTT к IP клиента по
возможности
3. Сделать редирект на сервер с наименьшим пингом к клиенту
4. Если посещаемость большая можно кешировать сетями

Можно использовать brain-splitted DNS но это весьма неудобно в реализации

04.02.07, drmarker <drmarker at gmail.com> написал(а):
>
> Привет.
>
> Не совсем в тему рассылки, но без nginx тут не обойдется все равно :)
>
> Думаю над алгоритмом поиска "ближайшего к клиенту зеркала". Типа
> пришел клиент, сделал запрос, ему отдается 302 на сервер, который к
> нему ближе всего.
>
> Как это сделать со стороны клиента - в общем, понятно. Берем список
> серверов, получаем ping до него и, грубо, у нас есть самый ближайший.
>
> А вот как со стороны сервера это сделать?
>
> Простейший способ - по странам. Отправлять клиента из Германии на
> сервер в Германии. Только это не всегда работает. Например, клиента,
> подключенного через ТТК нельзя отправлять на сервер в Ростелекоме,
> потому что трафик пойдет через Европу.
>
> Есть идеи? Как бы делали вы?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20070204/a250cdc2/attachment.html>


More information about the nginx-ru mailing list