ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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

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

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

04.02.07, drmarker <drmarker@xxxxxxxxx> написал(а):
Привет.

Не совсем в тему рассылки, но без nginx тут не обойдется все равно :)

Думаю над алгоритмом поиска "ближайшего к клиенту зеркала". Типа
пришел клиент, сделал запрос, ему отдается 302 на сервер, который к
нему ближе всего.

Как это сделать со стороны клиента - в общем, понятно. Берем список
серверов, получаем ping до него и, грубо, у нас есть самый ближайший.

А вот как со стороны сервера это сделать?

Простейший способ - по странам. Отправлять клиента из Германии на
сервер в Германии. Только это не всегда работает. Например, клиента,
подключенного через ТТК нельзя отправлять на сервер в Ростелекоме,
потому что трафик пойдет через Европу.

Есть идеи? Как бы делали вы?



 




Copyright © Lexa Software, 1996-2009.