Дано: сервер на nginx, который хранит статику - гифки (1-20mb). Есть 10 поддоменов (img1.,img2. ну и тд).
Nginx на убунте, убунта на DigitalOcean. Гифки льются с app по ssh.
По факту, сейчас инстанс упирается в место на диске и пока хочется сделать всё побюджетней, т. е желательно просто копируя инстансы.
Вопрос : каким образом легче всего масштабировать nginx и каким образом лить файлы на сервера? Есть ли какие-то отлаженные схемы? Есть пара идей, подскажите какие из них верные :
1) поставить балансер перед 2+ инстансами а контент на всех серверах дублировать (через lsynd какой нибудь?).
2) прописать во входящем nginx инструкцию для поиска файлов в других инстансах если такового нет на запрашиваемом? Тут смущает точка отказа в виде "главного" nginx на входе.
3) на текущий момент под урлы для гифок забито 10 поддоменов. Просто брать и постепенно мигрировать их на разные сервера с параллельной подменой ip? Ручной вариант, не очень нравится.
4) взять просто диск побольше и памяти побольше и не париться? Не хочется, потому что проект больше для обучения и хочется все таки как-то отмасштабировать на несколько инстансов.
Заранее спасибо за советы, пока для меня это темный лес.
Самый нормальный вариант это шардинг, тоесть номер сервера на который льем картинку в случаи 10 серверов будет n = (id % 10 + 1), при этом делаем перекрестные бекапы, чтобы если что-то упадет раздавать с других серверов.
Если у вас много гифок рекомендую задуматься так же о том что бы конвертировать их в html5 видео (webp и т.д.). Очень напрягает что гифки долго грузятся, а gfycat работает не шибко шустро.
Александр Таратин: Аххаа отличная технология, великолепно поддерживается!
Что, чуваки, ие у вас? Одиннадцатый? Ничего себе, идите нах! И друзей с лисой прихватите, а также яблодрочеров и ведроидров у кого ниже 4.3 ))))
Александр Таратин: Вон на тостере слева иконки где "моя лента", "все вопросы" они сделаны на svg, буквально сегодня жаловался кто-то что с 11 ие их не видит.
А webp это конечно отлично каждый второй либо не увидит их, либо надо пихать столько костылей, что в итоге гифка будет быстрее грузиться...
Nc_Soft: webp это один из форматов, который просто жмет лучше всех, можно и другие использовать. Если у вас половина аудитории сидит на хромах и андроидах, и при этом жмет эта штука раз в 10-20 лучше, то вы можете прилично так трафика сэкономить. Это никак не решит проблему с местом для хранения, но знатно позволит сократить трафик и поможет этим 50% пользователей.
> 3) на текущий момент под урлы для гифок забито 10 поддоменов. Просто брать и постепенно мигрировать их на разные сервера с параллельной подменой ip? Ручной вариант, не очень нравится.
Зато самый простой (и в вашем случае - работающий).
Вообще же можно сделать вместо 404-ки 301й редирект на соседние сервера (шардированные по поддоменам) + proxy_store/proxy_cache для особенно популярных картинок (чтобы они везде валялись).