А зачем вообще статику куда то выносить?

Segey
На сайте с 23.08.2005
Offline
404
2041

Хочу спросить у тех кто пробовал контент фото/видео выносить на отдельный сервер.

Поставил первым прокси-сервер с nginx, за ним стоит основной сейчас сервер (Apache:81 и раньше там стоял nginx на 80, сейчас его удалил), хочу сделать для mysql и статики отдельно сервера.

Но вот на счет статики не пойму, стоит оно того или нет. IP у меня один и канал один физически тоже, пока возможности выводить на отдельный нет и будет ли вообще. При таком раскладе есть смысл выносить статику на отдельный локальный сервер? Все в итоге все равно будет идти через прокси сервер.

Думаю может просто стоит настроить прокси сервер на то чтобы nginx на нем обрабатывал статику и локально брал ее с основного сервера? И даже если появится отдельный IP у меня, вообще есть смысл что-то городить с кучей серверов? Не могу понять что я с этого выйграю и выйграю ли вообще, для статики ресурсов нужно мало и основном это не должно сильно нагружать, если nginx будет брать их с основного сервера без Апача. Где подвох? :confused:

Brexit - уже совсем рядом. (https://about-this-model.blogspot.com/2019/03/brexit.html)
Joker-jar
На сайте с 26.08.2010
Offline
167
#1

Если нагрузка на дисковую систему (ну, и, соответственно, процессор, память) не зашкаливает, то смысла нет в нескольких серверах за одним каналом. А вообще, нужно решать задачи по мере их поступления, если нагрузка лишь в перспективе, то сразу об этом думать тоже особого смысла нет. Вернее, думать - есть (иметь в наличии план действий на этот случай), а конкретно все подстраивать под идеализированный вариант развития событий, думаю, нет.

P.S. Apache можно повесить на 127.0.0.1:80

Segey
На сайте с 23.08.2005
Offline
404
#2
Joker-jar:
Если нагрузка на дисковую систему (ну, и, соответственно, процессор, память) не зашкаливает

Вот тут то интересно, под нее как раз берут отдельные сервера со слабыми ресурсами и широким каналом, пусть и медленным. Но ресурсов обычно меньше, разве что мне кажется из-за канала.

Или на Debian работа файловой системы может так загрузить процессор и оперативку? Проверил просто копированием 25Gb файлов - памяти почти не съело, процессор тоже в порядке немного нагрузки совсем.

Кто нибудь симулировал нагрузку - аналогично как бы работал nginx в прокси сервере и по сети постоянно брал бы разные ф-лы? А то пока мне сдается что вообще затея с сервером статики - только из за каналов

SS
На сайте с 02.02.2009
Offline
116
#3

Для начала хотелось бы понять задачи, зачем нужны отдельные сервера.

Отдача статики с того же сервера при использовании nginx вместо апача разгружает и так сервер не плохо.

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

Тоже самое с базой данных, нужно понимать зачем разносить. Обычно причины следующие:

1) не хватает ресурсов на сервере

2) кластер для повышения надежности

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

Например, мы сделали простой новостной сайт и выводим список всех статей, или статей из одной категории. Если данные в виде заголовков и содержимого хранятся в одной таблице, то при одном не верно составленном запросе можно каждый раз почти всю базу на сервер тягать.

SandyMan
На сайте с 13.06.2004
Offline
129
#4

Я бы начал с выноса статики на отдельные сабдомены. Вот тут действительно заметите прибавку в скорости загрузки сайта, и юзеры скажут спасибо. Можете посмотреть в сторону CDN

Segey
На сайте с 23.08.2005
Offline
404
#5
specialist-seo:
1) не хватает ресурсов на сервере
2) кластер для повышения надежности

Mysql в первую очередь для разгрузки, хотя пока это второстепенно. Хочется заранее знать с чем придется иметь дело, чтобы не бегать потом как петух клюнет

specialist-seo:
Если задача удешивить стоимость, например сервер содержит видео и т.п. и служит просто дешевым хранилищем, делаем проксирование через nginx или сразу отдаем с того сервера (в этом случае потребуется программирование движка на загрузку медиа сразу на тот сервер)

А как я ее удешевлю? Сейчас я могу добавить, например 2HDDх1,5Тб на сервер где статика вместе с БД и скриптами. Если буду делать отдельный сервер то это еще минимум железа для него и те же самые HDD + все это хозяйство еще будет бегать по внутренней локалке

А если скажем говорить про повышение надежности в плане статики, не проще ли будет сделать RAID для этого? Я пока не вижу разницы в плане надежности никакой, сломается HDD процедура замены его будет в принципе аналогична, что на основном сервере, что на отдельном.

Разве что вынесу статику на отдельный сервер и при поломке HDD от сайта отвалится просто часть статики, а не все сразу. Но опять же RAID на основном сервере проблему решит, а вот отдельный сервер нифига не решает ее сам по себе...

Отдача статики с того же сервера при использовании nginx вместо апача разгружает и так сервер не плохо.

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

Для начала хотелось бы понять задачи, зачем нужны отдельные сервера.

Задача в том, чтобы разобраться для себя что в моих условиях с одним каналом наоболее разумный выход. Сам я всегда арендовал и никогда этим не занимался от того и не знаю как это лучше организовать

---------- Post added 07-06-2012 at 17:35 ----------

SandyMan:
Я бы начал с выноса статики на отдельные сабдомены. Вот тут действительно заметите прибавку в скорости загрузки сайта, и юзеры скажут спасибо. Можете посмотреть в сторону CDN

А можно нееееемного поподробнее??? Сейчас буду отдавать только через nginx мимо Apache, а субдомены мне чем помогут? Сейчас сделал, nginx на прокси сервере обрабатывает их, но опять же я получается должен на основном обрабатывать их через что то и поставить еще один nginx?

SS
На сайте с 02.02.2009
Offline
116
#6

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

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

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

Может еще чем-то поможет моя теория ))

http://wd5.ru/zametki-razrabotchika/teoriya-razrabotki-ddos-zashchishchennyh-saytov/

SandyMan
На сайте с 13.06.2004
Offline
129
#7
Segey:

А можно нееееемного поподробнее??? Сейчас буду отдавать только через nginx мимо Apache, а субдомены мне чем помогут? Сейчас сделал, nginx на прокси сервере обрабатывает их, но опять же я получается должен на основном обрабатывать их через что то и поставить еще один nginx?

Скачайте книгу «Реактивные веб-сайты»

http://speedupyourwebsite.ru/books/reactive-websites/

почитайте раздел "1.6.3. Распределённое хранение контента (CDN)".

Там кстати есть описание, как использовать Google Apps ва качестве CDN.

Segey
На сайте с 23.08.2005
Offline
404
#8

SandyMan,

Т.е. по сути CDN - это использовать различные сервисы для хранения файлов?

А сам я держу сервера со скриптами, базами и т.п.?

Для мультиязычных так наверное самое то, у меня попроще география будет :)

SandyMan
На сайте с 13.06.2004
Offline
129
#9
Segey:
SandyMan,
Т.е. по сути CDN - это использовать различные сервисы для хранения файлов?
А сам я держу сервера со скриптами, базами и т.п.?

Для мультиязычных так наверное самое то, у меня попроще география будет :)

На CDN держиться статика, на своём сервере динамика.

Нормальный CDN как правило требует вложения средств. Я как и говорю, начал бы с выделения на собственном сервере сабдомена, а лучше 2-3 для статики. Уже будет прибавка в скорости загрузки из-за паралельной загрузки ресурсов с разных хостов.

Желательно для статики добавить кэш-хедеры, чтобы юзер не постоянно не загружал с сервера статику. Такое разделение может пойти на пользу для любого сайта, независимо от "географии"

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