Хорошие ip->geo базы данных позволяют получить приблизительные координаты клиента и соответственно выбрать сервер физически наиболее близкий к клиенту (это чтоб не думать на какой сервер отправить клиента из нигерии) - но этот способ естественно не оптимален. Если Вас не смутит потеря некоторого времени на определение RTT то я бы просто поставил обработчик запроса и на PHP или perl сделал опрашиватель по принципу
1. Получить IP клиента 2. Отправить IP клиента на каждый из серверов в пуле. Каждый из этих серверов на такой запрос должен ответить средним RTT к IP клиента по возможности 3. Сделать редирект на сервер с наименьшим пингом к клиенту
4. Если посещаемость большая можно кешировать сетями
Можно использовать brain-splitted DNS но это весьма неудобно в реализации
Не совсем в тему рассылки, но без nginx тут не обойдется все равно :)
Думаю над алгоритмом поиска "ближайшего к клиенту зеркала". Типа пришел клиент, сделал запрос, ему отдается 302 на сервер, который к
нему ближе всего.
Как это сделать со стороны клиента - в общем, понятно. Берем список серверов, получаем ping до него и, грубо, у нас есть самый ближайший.
А вот как со стороны сервера это сделать?
Простейший способ - по странам. Отправлять клиента из Германии на сервер в Германии. Только это не всегда работает. Например, клиента, подключенного через ТТК нельзя отправлять на сервер в Ростелекоме, потому что трафик пойдет через Европу.