Территориально распределенный веб-сервер?

Добрый день.

Существует задача сделать так, чтобы для жителей западной части нашей необъятной сайт отдавался с западного сервера, для жителей восточной части — с восточного. Подскажите, как решить задачу распределения трафика, при этом с учетом возможности выхода одного из серверов из строя.
  • Вопрос задан
  • 3991 просмотр
Пригласить эксперта
Ответы на вопрос 3
aeont
@aeont
Поделюсь своим опытом.
Исходные данные: Windows Azure в Азии, Европе и США хостят стартовую страничку Composite C1 CMS — c1console.composite.net/C1/StartPage.aspx

Необходимо было обеспечить фэйловер и распределение трафика.

Сначала хотели использовать www.geoscaling.com — регистрировали smart subdomain, на php писали скрипт:
www.geoscaling.com/dns2/wiki/short_programming_guide_for_smart_subdomains (Return the closest server to the user)…

кусок тестового конфига:

$new_server['lat'] = 32.802955;
$new_server['lon'] = -96.769923;
$new_server['loc'] = «DOTNETPARK, UNITED STATES, TEXAS DALLAS»;
$new_server['ip'] = «1.1.1.1»; // IP1
$servers[] = $new_server;

$new_server['lat'] = 50.45;
$new_server['lon'] = 30.523333;
$new_server['loc'] = «VOLIA ISP, Ukraine, Kyiv»;
$new_server['ip'] = «1.1.1.1»; // IP2
$servers[] = $new_server;

$new_server['lat'] = 55.641486;
$new_server['lon'] = 12.080418;
$new_server['loc'] = «composite.net, Denmark, ROSKILDE»;
$new_server['ip'] = «1.1.1.1»; // IP3
$servers[] = $new_server;

в настройках задается фейловер сервер, который будет обслуживать в случае отказа.

Ньюансы:
1) около 5 минут ждать что бы «подхватился» конфиг
2) В настройках смартхоста необходимо прочекать «Share city info (country, city, latitude…
3) каждый смарт реквест с геодатой стоит в сумме 3 кредита. Вам дается определнное кол-во бесплатно.
4) Информация годичной давности — бесплатно давали 100к кредитов, те на 33к реквестов.

P.S. В итоге мы использовали нативные средства Windows Azure.
Ответ написан
Комментировать
@Chii
Поставить умный DNS сервер, который будет мониторить оба сервера и в случае падения одного перекидывать всех на оставшийся.
А если ни кто не упал, то по территориальному признаку перекидывать куда надо.
Я бы так и сделала.
Ответ написан
Комментировать
uran238
@uran238
Nginx+geoip
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы