С нами с 11.08.06
Сообщения: 939
Рейтинг: 849
|
Добавлено: 21/08/09 в 23:51 |
Подскажите хорошую статью по dns балансировке. Когда доменное имя резолвится в IP сервера, физически ближайшего к пользователю.
Желательно на русском языке.
|
|
|
|
саблезубый кролик
С нами с 02.07.05
Сообщения: 2966
Рейтинг: 993
|
Добавлено: 22/08/09 в 00:42 |
Если именно физически ближайший и по BGP и по geo тут вменяемых софтверных решений не замечено. из аппаратных цыцка GSS. если не хватает бабла на аппаратное решение то стоит думать в сторону патча на бинд, хотя если ооочень хорошо посчитать необходимость и цену патча получится - нахер оно за такое бабло нужно. А какая необходимость то в данном (можно в личку)?
|
|
|
|
С нами с 11.08.06
Сообщения: 939
Рейтинг: 849
|
Добавлено: 22/08/09 в 01:03 |
Gourad писал: | А какая необходимость то в данном? |
Ну слово "физически" я зря написал, имеется в виду конечно же не расстояние по прямой в километрах :-)
Необходимость простая - отдавать контент (тумбы с морды сиджа) европейским посетителям с европейского сервака, американским посетителям с американского сервака. Тумбы раздаются с субдоменов.
|
|
|
|
Soul's Buyer
С нами с 16.11.05
Сообщения: 12702
Рейтинг: 10740
|
Добавлено: 22/08/09 в 01:40 |
ничего себе ты удумал схемку ...
А в чём цимес, если не секрет - ускорить хочешь прогрузку юзверям (они не оценят, имхо, точнее не заметят), или какой-то шкурный интерес по каналам-бендвичам-сервакам (но тут я смутно представляю, кие надо объёмы, чтоб был ризон такое мутить) ?
|
|
|
|
С нами с 27.09.03
Сообщения: 5454
Рейтинг: 2506
|
Добавлено: 22/08/09 в 01:43 |
а может проще в скрипте детектить страну и выдавать линки на тумбы с разных серваков? типа img src=euro.thumbs.com и img src=usa.thumbs.com
|
|
|
|
саблезубый кролик
С нами с 02.07.05
Сообщения: 2966
Рейтинг: 993
|
Добавлено: 22/08/09 в 09:42 |
DG писал: | Ну слово "физически" я зря написал, имеется в виду конечно же не расстояние по прямой в километрах :-)
Необходимость простая - отдавать контент (тумбы с морды сиджа) европейским посетителям с европейского сервака, американским посетителям с американского сервака. Тумбы раздаются с субдоменов. |
цель ускорить раздачу тумб? или снизить цену за траф? Если первый вариант то забей, я не зря постом ранее упомянул BGP, год назад я лично сталкивался с проблемой, что по гео чувак находится буквально в 10 км в европе, но по трейсу ему гораздо быстрей будет получить контент со штатовского датацентра, для чего собстно и были куплены GSS. Если второй вариант, то стоит смотреть в сторону патча на биндовский view - лет несколько назад видел статейку на эту тему, но на русском врядли есть + простенький скриптик который берет maxmind'овский IP-To-Country и аггрегирует его до ARIN-RIPE-APNIC, чтобы бинд лишнюю память не жрал, если завтра вечером пнешь в джаббере, то пороюсь в корпоративном SVN и скину если не проебали.
grozny писал: | может проще в скрипте детектить страну и выдавать линки на тумбы с разных серваков? типа img src=euro.thumbs.com и img src=usa.thumbs.com |
Нет не проще. смысл дергать скрипт когда мона всё на уровне днс раскидать.
|
|
|
|
Хостинг, CDN
С нами с 23.12.04
Сообщения: 1259
Рейтинг: 1405
|
Добавлено: 22/08/09 в 10:27 |
Woland писал: | ничего себе ты удумал схемку ...
А в чём цимес, если не секрет - ускорить хочешь прогрузку юзверям (они не оценят, имхо, точнее не заметят), или какой-то шкурный интерес по каналам-бендвичам-сервакам (но тут я смутно представляю, кие надо объёмы, чтоб был ризон такое мутить) ? |
В том то и дело что убивается сразу 2 зайца.. И трафф в штатах дешевле, не надо через Атлантику его гонять, и прогрузка лучше.. Юзеры заметят, хотя это от хостера зависит.. У кого-то через Атлантику летает сайт на 10 мегабитах, у кого-то на 500 килобитах.. Разница есть.
Но мутить на ДНС и тем более в скрипте это так себе технология :-) Тут железячное решение необходимо :-)
|
|
|
|
XXX-Server.biz
С нами с 15.02.03
Сообщения: 9411
Рейтинг: 6676
|
Добавлено: 22/08/09 в 11:15 |
видел вроде патчи к Bind-у какие то для этого
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 22/08/09 в 11:52 |
grozny писал: | а может проще в скрипте детектить страну и выдавать линки на тумбы с разных серваков? типа img src=euro.thumbs.com и img src=usa.thumbs.com |
плюс адин. самое нормальное решение )
Ну или в папке с тумбами европейского сервера в nginx:
если $geo ~ 'US|CA' {
реврайт тумба http://us.mycj.com/thumbs/$1;
}
А на американском:
если $geo ~ '(FR|DE|GB|и т.д.)' {
реврайт тумба http://eu.mycj.com/thumbs/$1;
}
Очень примитивно написал но думаю понятно. Тогда и в скриптах ниче править не нужно.
А вообще странная затея... Как синхронизировать буш?
|
|
|
|
С нами с 11.08.06
Сообщения: 939
Рейтинг: 849
|
Добавлено: 22/08/09 в 12:24 |
Pentarh писал: | А вообще странная затея... Как синхронизировать буш? |
Не, это не странная затея, так работают все кластерные системы. Поисковые машины, стримвидео (тюбы) и прочее... Другое дело что мне железячное решение приобретать нерентабельно, вот и спрашиваю.
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 22/08/09 в 13:10 |
Я знаю о CDN не по наслышке. Странной была ниша применения - сиджей. Обычно этим занимаются социалки всякие, а в адалте крупные тьюбы и платники. Погугли в общем Content Delivery Network.
|
|
|
|
С нами с 19.11.04
Сообщения: 881
Рейтинг: 837
|
Добавлено: 22/08/09 в 13:12 |
Рекомендую посмотреть проект cjcdn.com ;) Я представил его на AwmOpenв этом году.
Пока работает в тестовом режиме, 100гб трафика для теста бесплатно. Пока предполагается балансировка на клиенте с помощью GeoIP, но скоро(1-2 недели) будет автоматическая балансировка по ДНС.
Стоимость трафика 5 центов за 1 гигабайт. Пока 2 площадки - в Европе и США. К оплате принимаются Webmoney.
|
|
|
|
С нами с 15.12.07
Сообщения: 83
Рейтинг: 152
|
Добавлено: 22/08/09 в 14:59 |
|
|
|
|
С нами с 29.08.04
Сообщения: 223
Рейтинг: 123
|
Добавлено: 23/08/09 в 04:47 |
На самом деле все проще
Для балансировки используется обычный http запрос, анализируется по geoip и подменяется заголовок на самый ближний сайт
|
|
|
|
XXX-Server.biz
С нами с 15.02.03
Сообщения: 9411
Рейтинг: 6676
|
Добавлено: 23/08/09 в 10:05 |
в отличии от днс-балансинга будут небольшие потери/задержки на этих запросах...
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 23/08/09 в 12:08 |
Вот тут люди боролись с тем же самым, даже бэкенд написали для PowerDNS.
|
|
|
|
С нами с 20.12.02
Сообщения: 613
Рейтинг: 312
|
Добавлено: 23/08/09 в 12:24 |
странно мне читать про аппаратные решения когда речь идет о тумбах сиджа
у нас уже есть немало клиентов которые отдают тумбы с штатов/европы по гео. делается или по днс или через скрипт на морде. кому как удобно.
по поводу "юзеры не оценят". экспериментальным путем проверено. оценят. ессесно прода вырастет не в 3 раза, но эффект есть.
стукнись 104327042, расскажу как и что.
|
|
|
|
С нами с 29.08.04
Сообщения: 223
Рейтинг: 123
|
Добавлено: 23/08/09 в 17:00 |
color писал: | в отличии от днс-балансинга будут небольшие потери/задержки на этих запросах... |
Будет небольшая задержка
Зато действует надежно и позволяет моментально исключать сдохшие узлы, что c dns балансингом не прокатит
|
|
|
|
С нами с 08.08.02
Сообщения: 328
Рейтинг: 149
|
Добавлено: 26/08/09 в 13:19 |
Вдохновившись этим топиком решил ночью реализовать что-то подобное. Реализовывалось для домена парнёрки (domain.com) и субдомена парнёрки с фхг (free.domain.com).
Итак, имеем два сервера:
1. Европа, парнёрка;
2. Европа, фхг;
3. США, бекапы всего.
Поставил на серверах нгингс 8.х с поддержкой максминд геоайпи.
Конфиг виртуальных хостов нгингса, первого сервера:
Код: | server {
listen первый_айпи:80;
server_name domain.com domain.com;
root /home/www/site02/htdocs;
access_log /home/www/logs/domain.com main;
error_log /home/www/logs/domain.com_error;
error_page 401 403 404 502 503 504 =200 http://www.domain.com/;
if ($geoip_country_code ~* RU) {rewrite ^ http://www.yahoo.com permanent;}
location / {
proxy_pass http://127.0.0.1/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
location ~* ^.+\.(jpg|gif|png|wmv|js|css|flv|swf)$ {
root /home/www/site02/htdocs;
expires 30d;
if ($geoip_country_code ~* US) {rewrite ^/(.*)$ http://us.domain.com/$1 redirect;}
}
location ~ /\.ht {deny all;}
}
|
Второго:
Код: | server {
listen второй_айпи:80;
server_name free.domain.com;
root /home/www/site129/htdocs;
access_log /home/www/logs/free.domain.com main;
error_log /home/www/logs/free.domain.com_error;
error_page 401 403 404 502 503 504 =200 http://www.domain.com/;
if ($geoip_country_code ~* RU) {rewrite ^ http://www.yahoo.com permanent;}
location / {
proxy_pass http://127.0.0.1/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
location ~* ^.+\.(jpg|gif|png|wmv|js|css|flv|swf)$ {
root /home/www/site129/htdocs;
expires 30d;
valid_referers none blocked server_names domain.com *.domain.com;if ($invalid_referer) {rewrite ^ http://www.yahoo.com permanent;}
if ($geoip_country_code ~* US) {rewrite ^/(.*)$ http://us.free.domain.com/$1 redirect;}
}
location ~ /\.ht {deny all;}
}
|
Третьего:
Код: | server {
listen третий_айпи:80;
server_name us.domain.com;
root /home/backups/1/home/www/site02/htdocs;
access_log /var/log/us.domain.com main;
error_log /dev/null;
error_page 401 403 404 502 503 504 =200 http://www.domain.com/;
if ($geoip_country_code ~* RU) {rewrite ^ http://www.yahoo.com permanent;}
location ~* ^.+\.(jpg|gif|png|wmv|js|css|flv|swf)$ {
allow all;
expires 30d;
}
location / {deny all;}
}
server {
listen третий_айпи:80;
server_name us.free.domain.com;
root /home/backups/2/home/www/site129/htdocs;
access_log /var/log/us.free.domain.com main;
error_log /dev/null;
error_page 401 403 404 502 503 504 =200 http://www.domain.com/;
if ($geoip_country_code ~* RU) {rewrite ^ http://www.yahoo.com permanent;}
location ~* ^.+\.(jpg|gif|png|wmv|js|css|flv|swf)$ {
allow all;
expires 30d;
valid_referers none blocked server_names domain.com *.domain.com;if ($invalid_referer) {rewrite ^ http://www.yahoo.com permanent;}
}
location / {deny all;}
}
|
Остальные настройки не вижу смысла вылаживать, любой адекватный админ поймёт как и с чем кушать эту инфу. ;)
|
|
|
|
С нами с 08.08.02
Сообщения: 328
Рейтинг: 149
|
Добавлено: 26/08/09 в 23:36 |
Отказались от такой схемы. Морду платника отдаём без редиректа. С фхг редиректим на us.* не столько картинки, но и сам субдомен.
На втором сервере примерно так:
Код: | server {
listen второй_айпи:80;
server_name free.domain.com;
root /home/www/site129/htdocs;
access_log /home/www/logs/free.domain.com main;
error_log /home/www/logs/free.domain.com_error;
error_page 401 403 404 502 503 504 =200 http://www.domain.com/;
if ($geoip_country_code ~* RU) {rewrite ^ http://www.yahoo.com permanent;}
if ($geoip_country_code ~* US) {rewrite ^/(.*)$ http://us.free.domain.com/$1 redirect;}
location / {
proxy_pass http://127.0.0.1/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
location ~* ^.+\.(jpg|gif|png|wmv|js|css|flv|swf)$ {
root /home/www/site129/htdocs;
expires 30d;
valid_referers none blocked server_names domain.com *.domain.com;if ($invalid_referer) {rewrite ^ http://www.yahoo.com permanent;}
}
location ~ /\.ht {deny all;}
}
|
На третьем соответственно копия всего фхг.
P.S. по куче комментариев моего предыдущего поста я понял, что народу это так надо или ничего не поняли.
|
|
|
|
С нами с 20.12.02
Сообщения: 613
Рейтинг: 312
|
Добавлено: 27/08/09 в 21:09 |
мне кажется этим должны заниматься хостеры. или если речь о крупном проекте где есть свой админ, то он.
а рядовому/обычному клиенту геморно самому все это делать. ИМХО.
посему и "куча" коментов на твои посты
|
|
|
|
С нами с 29.08.04
Сообщения: 223
Рейтинг: 123
|
Добавлено: 29/08/09 в 17:45 |
Да все и так было понятно, я ж говорил, что надо хидеры вебсервера отдавать от гео
|
|
|
|
С нами с 01.02.07
Сообщения: 231
Рейтинг: 294
|
Добавлено: 31/08/09 в 16:19 |
eSupport писал: | Будет небольшая задержка
Зато действует надежно и позволяет моментально исключать сдохшие узлы, что c dns балансингом не прокатит |
Задержка будет небольшая для близких пользователей, а для пользователей на другом континенте задержка чтоб отправить запрос и получить редирект может быть даже больше чем время, требуемое чтобы отправить запрос и получить картинку с ближайшего сервера.
То есть редирект годится только для больших файлов, типа видео, или архивов.
2aZ - если не хочешь дать имя домена где настроены редиректы - потести сам через http://Site-Perf.com/ - выбери точки тестирования в штатах и европе да сравни.
|
|
|
|