Как организовать распределение нагрузки, прокси, передача коннекта

12
D
На сайте с 05.06.2007
Offline
155
1940

Собствено пока меня это не задело, но лучше подготовиться зарание :smoke:

Ситуация

Есть сайт, на одном домене domen.ru и поступает на него много запросов, и картинки и пхп.

Предположим лежит он на мощном сервере с 100мбитным каналом, но канала стало не хватать :eek:

Да, можно раскидать картинки по разным серверам, пхп также, например как на однокласниках

img1.domain.ru img2.domain.ru ...

www1.domain.ru www2.domain.ru ...

Но, хотелось бы как в вконтакте :rolleyes:

domain.ru/img/logo.gif , т.е. адреса/домены не меняются!

Вопросы

Все запросы всё равно изначально идут к одному серверу?

А потом перекидываются на другие?

Что если в этом случае канала не хватает даже принять запросы?

Как такое реализовывается, вообще представления не имею, подскажите хоть пару урл, а кому не жалко поделитесь опытом :idea:

Если взять nginx и способ с распределением нагрузки, ведь всёравно ответ от прокси серверов получает один сервер и возращает его клиентам, или я не прав? ) (тут то и не хватит канала)

Зарание всем спасибо ))

Написал не мало шедевров ;)
MIRhosting.com
На сайте с 18.10.2006
Offline
203
#1

Ставить аплинк на гиг, если не хватает канала. Если и гига не хватает, то делать распределенный кластер (самое простое - несколько A записей).

В бэкэнде крутиться mysql или что там используется, хорошо бы с репликацией или redundant storage.

В зависимости от нагрузки, нормально картинки можно отдавать напрямую сервером, а php+mysql (или что юзается) отдавать на обработку дочерним машинам, которых может быть несколько.

Это очень классно реализовано в lighttpd через fastcgi.

Андрей Нестеренко, MIRhosting Облачная платформа для DevOps (https://mirhosting.com/paas)
Kashey
На сайте с 10.07.2007
Offline
36
#2

Красиво сделать конечно не получиться, если оставить один домен.

Да - все верно прописываете еще N записей в ДНС и получаете циклический ДНС

УЖАСТНАЯ ЧТУКА я вам скажу - клиентов мотает по серверам как бабка мусор..

С другой строны выжрать гигибит - это очень крута.

Паяльник в руки и припаяйте себе аплинт оптики на 10ГБит( шутка, ставиться совершенно нормально )

Больше я думаю вам хостер не предоставит, иначе канал забьете весь.

Получаем - жирный канал( лично у меня 2Гбит на сервере, 1Г в один разьем, 1Г в другой. Два ИП и циклический ДНС, но комп один :)) и далее upstream гниксовский - замечательная вешь я вам скажу!

И все же мы все соседи (http://www.esosedi.ru)
_
На сайте с 24.07.2002
Offline
299
_Ad
#3

если сервер мощный, то там по идее должен быть второй порт.. воткните туда еще один 100 мб канал.. датацентр его с радостью вам продаст, думается...

проблема ведь не в том, что сервер на справляется, а в том что канал узкий.. правильно? ну а не хватит 200 мб, купить гигабитный..

Зачем вам раскидывать по нескольким серверам, если ваш мощный сервер и в одиночку со всем справляется.. это просто деньги на ветер.

S
На сайте с 09.10.2007
Offline
186
#4
Dimanych:
Собствено пока меня это не задело, но лучше подготовиться зарание 🚬

Ситуация

Есть сайт, на одном домене domen.ru и поступает на него много запросов, и картинки и пхп.
Предположим лежит он на мощном сервере с 100мбитным каналом, но канала стало не хватать 😮

Да, можно раскидать картинки по разным серверам, пхп также, например как на однокласниках
img1.domain.ru img2.domain.ru ...
www1.domain.ru www2.domain.ru ...

Но, хотелось бы как в вконтакте 🙄
domain.ru/img/logo.gif , т.е. адреса/домены не меняются!

Вопросы

Все запросы всё равно изначально идут к одному серверу?
А потом перекидываются на другие?
Что если в этом случае канала не хватает даже принять запросы?
Как такое реализовывается, вообще представления не имею, подскажите хоть пару урл, а кому не жалко поделитесь опытом ☝

Если взять nginx и способ с распределением нагрузки, ведь всёравно ответ от прокси серверов получает один сервер и возращает его клиентам, или я не прав? ) (тут то и не хватит канала)

Зарание всем спасибо ))

Картинки вполне понимают редирект (Location: ) но не самая хорошая идея.

Удобная панель для доменных имен (http://panel.started.ru/) с массовыми операциями. Индивидуальные цены по запросу.
D
На сайте с 05.06.2007
Offline
155
#5

Kashey , сколько же стоит 1Гбит, нескажете по секрету? если он будет скажем так на 500мбит в среднем забит )

Я так понимаю нужен DynDNS который выдаёт юзеру разные A записи серверов ..

Как же в таком случае это всё сбалансировать в зависимости от нагруженности серверов?

Всё пускать через один сервер с большим каналом, что же будет с жёстким если будут читаться множество картинок не малого размера?

Если использовать nginx upstream

то основной сервер ведь делает запрос к другим, получает ответ, и передаёт его клиенту?

Т.е. всё равно весь внешний трафик идёт через один сервер или я ошибаюсь?

upstream backend {
server backend1.example.com weight=5;
server backend2.example.com:8080;
server unix:/tmp/backend3;

server backup1.example.com:8080 backup;
server backup2.example.com:8080 backup;
}

server {
location / {
proxy_pass http://backend;
}
}
m11
На сайте с 03.01.2008
Offline
10
m11
#6

Можно в сторону железок от Foundry посмотреть 🙄

Мой блог, связанный с информационными технологиями (http://www.insight-it.ru)
Kashey
На сайте с 10.07.2007
Offline
36
#7

Динамыч - вопрос цены - это не ко не, плачу не я, "плачу" мне.

Вроде бы в плюсе живем, но я не уверен на все 100%

Насчет равномерного распределения нагрузки на сервера.

У нас их всего два - старый и еще более старый.

Оба забиты проценов так на 10. В плане нагрузки на проц. Но в нашем деле оч важна скорость реакции, ну а в основном отказоустойчивость.

Вот утром один сервер отбросил копытца.. и как назло - главный.

Пойду другой топик создавать

Andreyka
На сайте с 19.02.2005
Offline
822
#8

1) Делать предгенеренный статичный контент

2) Научится управлять прокси в динамичном контенте

3) Натыкать пару серверов с прокси и настроить rdns

Не стоит плодить сущности без необходимости
K
На сайте с 24.03.2004
Offline
223
#9
Andreyka:
1) Делать предгенеренный статичный контент

и размещать его на CDN 😂

ps. если кому надо, то в личку.

проверенная ддос защита (http://ddos-protection.ru) -> http://ddos-protection.ru (http://ddos-protection.ru), бесплатный тест, цена от размера атаки не зависит.
D
На сайте с 05.06.2007
Offline
155
#10
Andreyka:
1) Делать предгенеренный статичный контент
2) Научится управлять прокси в динамичном контенте
3) Натыкать пару серверов с прокси и настроить rdns

как же быть если контент очень динамический :D

вообщем я делаю для себя выводы, нужен

1 сервер главный, nginx+пхп и кешируем по возможности чтобы пхп и база жили дружно

1 сервер под базу

x серверов под картинки(трафик как никак) и попробовать редиректить на них (location), кстати почему это плохая идея?

нда, всёже опыту не хватает чтобы всё понять, может есть пару статей, линков, как такое реализовывают в подробностях?

Всем спасибо за помощь!

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий