EOMY.NET
Хостинг EOMY.NET: Форум поддержки
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
RSS Feed  

CDN
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Администрирование серверов
CDN
Автор Сообщение
[LP]LordPro.teus
Призрак Лорда
Призрак Лорда


Зарегистрирован: 26.07.2007
Сообщения: 5092

42282 Монеты

СообщениеДобавлено: Вт, 21 Дек, 2010 19:36    Заголовок сообщения: CDN Ответить с цитатой

Здравствуйте, форумчане, сотоварищи!
Возник недавно один вопрос... возможно ли обладая лишь доступом на уровне VPS и, собственно, несколькими VPS (для упрощения возьмем... две) - реализовать собственную CDN? Если да - какими методами? Резонно ли?
Большинство результатов в Google "are irrelevant", да и мнение, собственно, профессионалов, имхо, форумчанам полезнее...
Приглашаю к дискуссии Wink
P.s.: и медальку героя себе лично - надо ведь сформулировать весь пост так, чтоб все же не использовать отсутствующих в укр.раскладке букв = )
_________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
lazutov
while (1==1);
Последний герой


Зарегистрирован: 30.04.2007
Сообщения: 3840

111220 Монеты

СообщениеДобавлено: Вт, 21 Дек, 2010 20:03    Заголовок сообщения: Ответить с цитатой

Использование аналогов из украинской раскладки не сильно испортит сообщение. Мне с тайской клавой было сложнее.
-----
По теме.
Web-balancing делается на уровне nginx очень просто. Доки по этому поводу в вики nginx есть.
Можно рандомно или по гео-признаку редиректить или на www1 или на www2
Балансираторов от одного и более.

Далее. вариант 2.
2 ns. Каждый из них отдаёт свой IP как А запись. (грабли с кешем dns, успешно наступаем). не RFCшно.

Третий. Общая точка входа. Эта точка входа и осуществляет проксирование сама. Например, на менее загруженный сервер.
точек входа 1+
_________________
сервис DNS | разные http, DNS и прочие утилиты
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
[LP]LordPro.teus
Призрак Лорда
Призрак Лорда


Зарегистрирован: 26.07.2007
Сообщения: 5092

42282 Монеты

СообщениеДобавлено: Вт, 21 Дек, 2010 20:18    Заголовок сообщения: Ответить с цитатой

lazutov
Собственно, идея, скорее имено в "тихой" CDN (ака, той, которая не кричит о себе всему миру, подменяя адрес). Но тут опять же свои "грабли" - определение геопризнака до того, как запрос ушел к PHP или другому обработчику приложения, доступ к базе (рискну предположить, идеал - внешний БД-сервер с удаленкой + кеширование запросов) и... наверное, все. Ближе, получается, вариант 3, верно?
_________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
ph0en1x
Интернет на завтрак
Интернет на завтрак


Зарегистрирован: 28.11.2007
Сообщения: 41

1 Монеты

СообщениеДобавлено: Вт, 21 Дек, 2010 22:46    Заголовок сообщения: Ответить с цитатой

[LP]LordPro.teus писал(а):
lazutov
Собственно, идея, скорее имено в "тихой" CDN (ака, той, которая не кричит о себе всему миру, подменяя адрес). Но тут опять же свои "грабли" - определение геопризнака до того, как запрос ушел к PHP или другому обработчику приложения, доступ к базе (рискну предположить, идеал - внешний БД-сервер с удаленкой + кеширование запросов) и... наверное, все. Ближе, получается, вариант 3, верно?

nginx + geo модуль это и будет определение сервера до передачи запроса обработчику.
Код:
http {
      geo  $geo  {
         default      default;
         1.1.1.0/24   us;
         1.1.2.0/24   us;
         1.1.3.0/24   us;
         ...
      }

      upstream  us.server {
          ....
      }

      upstream  default.server {
          ....
      }

      server {
           location / {
               proxy_pass  http://$geo.server;
           }


Код:
upstream backend  {
  server backend1.example.com weight=5;
  server backend2.example.com:8080;
  server unix:/tmp/backend3;
}
 
server {
  location / {
    proxy_pass  http://backend;
  }
}

это просто равномерно распределит нагрузку между бекендами.


Цитата:


Третий. Общая точка входа. Эта точка входа и осуществляет проксирование сама. Например, на менее загруженный сервер.
точек входа 1+

так это и есть вариант с nginx + balancing или я что-то не так понимаю? можно пример общей точки)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
[LP]LordPro.teus
Призрак Лорда
Призрак Лорда


Зарегистрирован: 26.07.2007
Сообщения: 5092

42282 Монеты

СообщениеДобавлено: Ср, 22 Дек, 2010 11:14    Заголовок сообщения: Ответить с цитатой

Цитата:
location / {
proxy_pass http://$geo.server;
}

Если я правильно понял, то документ берется с $geo.server, где исполняется скрипт и т.д., а для пользователя адрес остается все тем же?
+ пока не дошло, что нужно указать в upstream default.server'а.. документация nginx недостаточно разжевана Smile
Общая цель - ускорение загрузки за счет подбора географически сервера, более удобно связанного с клиентом, но с возможностью, скажем, поддержки нескольких в роли "резервов", чтоб могли подхватить запрос из тех, где не указан сервер.
Опять же, если до меня дошло - метод с nginx данную проблему хорошо решает в распределении нагрузки, но слабо - для геооптимизации (т.к. реально пользователь работает посредством конкретно того сервера, где стоит проксирующий nginx). Впрочем, как применить для сих целей DNS-систему - мне понятно еще менее... Smile боюсь, вовсе нереально
_________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
ph0en1x
Интернет на завтрак
Интернет на завтрак


Зарегистрирован: 28.11.2007
Сообщения: 41

1 Монеты

СообщениеДобавлено: Ср, 22 Дек, 2010 13:07    Заголовок сообщения: Ответить с цитатой

[LP]LordPro.teus писал(а):
Цитата:
location / {
proxy_pass http://$geo.server;
}

Если я правильно понял, то документ берется с $geo.server, где исполняется скрипт и т.д., а для пользователя адрес остается все тем же?
+ пока не дошло, что нужно указать в upstream default.server'а.. документация nginx недостаточно разжевана Smile
Общая цель - ускорение загрузки за счет подбора географически сервера, более удобно связанного с клиентом, но с возможностью, скажем, поддержки нескольких в роли "резервов", чтоб могли подхватить запрос из тех, где не указан сервер.
Опять же, если до меня дошло - метод с nginx данную проблему хорошо решает в распределении нагрузки, но слабо - для геооптимизации (т.к. реально пользователь работает посредством конкретно того сервера, где стоит проксирующий nginx). Впрочем, как применить для сих целей DNS-систему - мне понятно еще менее... Smile боюсь, вовсе нереально

скажем так proxy_pass будет проксировать запрос и адрес останеться всё тотже но трафик будет течь через сервер где nginx, всё верно. Я тут я забыл поправить извиняюсь Smile

можно установить proxy_redirect и тогда будет перебрасывать на другой сервер с адресом скажем www1.example.com который расположен географически ближе. В dns естественно нужно прописать субдомены www1.example.com; www2.example.com; с правильными A записями.
Код:
geo  $geo  {
         default      default;
         1.1.1.0/24   us;
         1.1.2.0/24   us;
         1.1.3.0/24   us;
         ...
      }

тут указываеться ip-сети пользователей и название групы серверов которым будет отдан на обработку запрос.
В upstream default.server записывают сервер на который пользователь будет переброшен если не найдено соответсвие.
т.е. что бы было понятней пользователь с ip 1.1.1.1 будет переброшен на сервера us, а пользователь 1.1.4.1 будет переброшен на default.
*************************************************************
Вариант с dns лучше тем что адреса остаются идентичными просто пользователю отдаётся A запись географически ближнего сервера, но здесь есть существенный недостаток dns часто кешируется и сложно проверить что именно получит пользователь.

В плане геопривязки это вобщемто не имеет значения мне кажется, американец скорее всего получит адрес американского сервера, а европеец европейского. Но для балансировки нагрузки такой метод негодится потому что распределение будет не равномерным изза кеша.
как это происходит на уровне конфигов bind'a к сожалению не знаю, не было повода в этом разобратся)

както так вобщем, надеюсь понятно расписал Laughing
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Ср, 22 Дек, 2010 14:25    Заголовок сообщения: Ответить с цитатой

Можете описать самое простое решение следующей задачи:
Есть два VDS надо чтобы при выходе одного из них включался второй (дублирование серверов).
Для этого необходим ещё и третий хостинг (от доступности которого будет все зависить)?
Как это можно реализовать (желательно на пальцах)? Задачи ускорения доступа, распределение данных, разделения нагрузки (каждый VDS может держать полную нагрузку на сайт) и т.п. не стоит, главное чтобы непотопляемость сайта увеличилась.

P.S. Я правильно понимаю что это можно реализовать просто указав А записи двух ip адресов в DNS сайта.
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
lazutov
while (1==1);
Последний герой


Зарегистрирован: 30.04.2007
Сообщения: 3840

111220 Монеты

СообщениеДобавлено: Ср, 22 Дек, 2010 14:57    Заголовок сообщения: Ответить с цитатой

Код:
Я правильно понимаю что это можно реализовать просто указав А записи двух ip адресов в DNS сайта.

DNS клиент на локальной машине получит эти 2 IP.
А браузер выбирает как правило первый или случайный.


Самый простой способ -- менять А запись при падении.
то есть. фоловер ограничен кешем днс.


Далее. Нормальное решение: Несколько входных точек повышенной надёжности, которые просто проксируют куда надо.
_________________
сервис DNS | разные http, DNS и прочие утилиты
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Ср, 22 Дек, 2010 15:08    Заголовок сообщения: Ответить с цитатой

lazutov писал(а):

А браузер выбирает как правило первый или случайный.

А точно что все браузеры после того как первый ip недоступен не попытаются перейти по второму ip в днс? По моему это вполне логичное решение.

lazutov писал(а):

Нормальное решение: Несколько входных точек повышенной надёжности, которые просто проксируют куда надо.

Не понятно как может быть несколько входных точек если ip у нас один?
Второй вопрос где взять эти самые "точки повышенной надежности"? Какой хостинг их может предоставить? И каким образом реализуется проксирование?
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
lazutov
while (1==1);
Последний герой


Зарегистрирован: 30.04.2007
Сообщения: 3840

111220 Монеты

СообщениеДобавлено: Ср, 22 Дек, 2010 15:59    Заголовок сообщения: Ответить с цитатой

Точно. Браузеры не перебирают. Полгода назад мы пытались.

У входных точек может быть несколько ip. Просто средствами dns.(много А)

Тест: http://cdn.qwerty.name/

посмотрите, на какой IP у вас ресолвится и каким браузером.
Варианты: откроется что-то типа http://any.test.qwerty.name/
или http://188.40.10.220/

Тест2: http://cdn2.qwerty.name/ первый такой же, второй локалхост
Тест3: http://cdn3.qwerty.name/ отличается от cdn2 порядком отдаваемых ip

расскажите, что у вас открылось/не открылось?
_________________
сервис DNS | разные http, DNS и прочие утилиты
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Ср, 22 Дек, 2010 16:30    Заголовок сообщения: Ответить с цитатой

lazutov писал(а):
расскажите, что у вас открылось/не открылось?

Тест1:

Welcome to web2.qwerty.name.
You requested http-host: any.test.qwerty.name
Error 404: page not found
Page you requested is unavailable and cannot be found.

Тест2, Тест3: выпало страница не найдена

P.S. Браузер хром.
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
ph0en1x
Интернет на завтрак
Интернет на завтрак


Зарегистрирован: 28.11.2007
Сообщения: 41

1 Монеты

СообщениеДобавлено: Ср, 22 Дек, 2010 20:43    Заголовок сообщения: Ответить с цитатой

Получается что в балансировке DNS всё сводится только к нескольким А записям к домену?

Нет каких либо dns серверов которые работали бы по тому же принципу что и nginx + geo, т.е. определяли из какой страны пользователь и отдавали одну А запись ближайшего сервера?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
lazutov
while (1==1);
Последний герой


Зарегистрирован: 30.04.2007
Сообщения: 3840

111220 Монеты

СообщениеДобавлено: Чт, 23 Дек, 2010 06:32    Заголовок сообщения: Ответить с цитатой

nginx плюс гео -- однозначно.
На уровне днс это будет так затратно при больших объемах запросов, что дешевле VDS + балансировщик на нём.

http://www.caraytech.com/geodns/
_________________
сервис DNS | разные http, DNS и прочие утилиты
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Чт, 23 Дек, 2010 07:45    Заголовок сообщения: Ответить с цитатой

lazutov писал(а):
Точно. Браузеры не перебирают. Полгода назад мы пытались.

Опять таки все в результате сведется к доступности одного VDS? Есть какой либо хостинг где гарантированно обещают (и дают) аптайм близкий к 100%?

lazutov писал(а):

У входных точек может быть несколько ip. Просто средствами dns.(много А)

А в чем смысл? Получается падение одной входной точки повлечет потерю и трафика с неё? Другими словами несколько входных точек только увеличивают вероятность отказа у пользователя. Получается для отказаустойчевости надо иметь одну точку на непотопляемом хостинге (как я понимаю больших ресурсов от хостинга не требуется, т.к. он просто перенаправляет трафик на другой сервер).
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
[LP]LordPro.teus
Призрак Лорда
Призрак Лорда


Зарегистрирован: 26.07.2007
Сообщения: 5092

42282 Монеты

СообщениеДобавлено: Чт, 23 Дек, 2010 11:24    Заголовок сообщения: Ответить с цитатой

Веденин
У меня за 2010-й получается около 99,997%... но опять же, нехорошо как-то зацикливать весь процесс на одном сервере.
+ Опять же, а если падает сервер с базой - при динамическом сервисе - вся система падает автоматом, не так ли? Как справиться?
_________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Администрирование серверов Часовой пояс: GMT
На страницу 1, 2  След.
Страница 1 из 2

 


EOMY TOP 100 Rambler's Top100   Рейтинг@Mail.ru    



Powered by phpBB © 2001, 2005 phpBB Group


Рейтинг SIMPLETOP.NET