Anycast DNS - и ближайший к клиенту сервер(лучший маршрут) будет браться из BGP.<br>Не тривиально правда.<br><br><br><div><span class="gmail_quote">04.02.07, <b class="gmail_sendername">TDz TDz</b> &lt;<a href="mailto:tdz@modestus.org">
tdz@modestus.org</a>&gt; написал(а):</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Хорошие ip-&gt;geo базы данных позволяют получить приблизительные координаты клиента и соответственно выбрать сервер физически наиболее близкий к клиенту (это чтоб не думать на какой сервер отправить клиента из нигерии) - но этот способ естественно не оптимален. Если Вас не смутит потеря некоторого времени на определение RTT то я бы просто поставил обработчик запроса и на PHP или perl сделал опрашиватель по принципу
<br><br>1. Получить IP клиента<br>2. Отправить IP клиента на каждый из серверов в пуле. Каждый из этих серверов на такой запрос должен ответить средним RTT к IP клиента по возможности<br>3. Сделать редирект на сервер с наименьшим пингом к клиенту
<br>4. Если посещаемость большая можно кешировать сетями<br><br>Можно использовать brain-splitted DNS но это весьма неудобно в реализации<br><br><div><span class="gmail_quote">04.02.07, <b class="gmail_sendername">drmarker
</b> &lt;<a href="mailto:drmarker@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">drmarker@gmail.com</a>&gt; написал(а):</span><div><span class="e" id="q_1108cdd4f2cb17f4_1"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Привет.
<br><br>Не совсем в тему рассылки, но без nginx тут не обойдется все равно :)<br><br>Думаю над алгоритмом поиска &quot;ближайшего к клиенту зеркала&quot;. Типа<br>пришел клиент, сделал запрос, ему отдается 302 на сервер, который к
<br>нему ближе всего.<br><br>Как это сделать со стороны клиента - в общем, понятно. Берем список<br>серверов, получаем ping до него и, грубо, у нас есть самый ближайший.<br><br>А вот как со стороны сервера это сделать?<br>

<br>Простейший способ - по странам. Отправлять клиента из Германии на<br>сервер в Германии. Только это не всегда работает. Например, клиента,<br>подключенного через ТТК нельзя отправлять на сервер в Ростелекоме,<br>потому что трафик пойдет через Европу.
<br><br>Есть идеи? Как бы делали вы?<br></blockquote></span></div></div><br>
</blockquote></div><br><br>--<br>Kirill Morozov<br><br>