Nigrimmist
@Nigrimmist
Asp.net senior developer

Горизонтальное масштабирование nginx статики?

Дано: сервер на nginx, который хранит статику - гифки (1-20mb). Есть 10 поддоменов (img1.,img2. ну и тд).
Nginx на убунте, убунта на DigitalOcean. Гифки льются с app по ssh.

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

Вопрос : каким образом легче всего масштабировать nginx и каким образом лить файлы на сервера? Есть ли какие-то отлаженные схемы? Есть пара идей, подскажите какие из них верные :
1) поставить балансер перед 2+ инстансами а контент на всех серверах дублировать (через lsynd какой нибудь?).
2) прописать во входящем nginx инструкцию для поиска файлов в других инстансах если такового нет на запрашиваемом? Тут смущает точка отказа в виде "главного" nginx на входе.
3) на текущий момент под урлы для гифок забито 10 поддоменов. Просто брать и постепенно мигрировать их на разные сервера с параллельной подменой ip? Ручной вариант, не очень нравится.
4) взять просто диск побольше и памяти побольше и не париться? Не хочется, потому что проект больше для обучения и хочется все таки как-то отмасштабировать на несколько инстансов.

Заранее спасибо за советы, пока для меня это темный лес.
  • Вопрос задан
  • 2838 просмотров
Решения вопроса 1
@Nc_Soft
Самый нормальный вариант это шардинг, тоесть номер сервера на который льем картинку в случаи 10 серверов будет n = (id % 10 + 1), при этом делаем перекрестные бекапы, чтобы если что-то упадет раздавать с других серверов.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Если у вас много гифок рекомендую задуматься так же о том что бы конвертировать их в html5 видео (webp и т.д.). Очень напрягает что гифки долго грузятся, а gfycat работает не шибко шустро.
Ответ написан
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
> 3) на текущий момент под урлы для гифок забито 10 поддоменов. Просто брать и постепенно мигрировать их на разные сервера с параллельной подменой ip? Ручной вариант, не очень нравится.

Зато самый простой (и в вашем случае - работающий).

Вообще же можно сделать вместо 404-ки 301й редирект на соседние сервера (шардированные по поддоменам) + proxy_store/proxy_cache для особенно популярных картинок (чтобы они везде валялись).
Ответ написан
Комментировать
index0h
@index0h
PHP, Golang. https://github.com/index0h
mogilefs
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы