LINUX.ORG.RU
Форум — Admin  

Nginx + кеширование + много статики без бэкенда.

 , ,


0

3

Доброго времени суток!

Подскажите, есть ли решения для кеширования статического контента (по выбору, или по указанию каталога) в Nginx без backend-a.

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

В нашей же ситуа, есть несколько каталогов с очень большим количеством маленьких файлов (до 5 Мб). Нужна софтина, если не умеет Nginx, которой бы мы показали пальцем - тут Nginx, ты работаешь с ним. Тут - каталоги с файлами, ты забираешь файлы в ОЗУ и работает с Nginx.

Несколько дней искал решение - Nginx-у нужен бэкенд, memcached как я понял работает с php кодом.

Какие будут варианты?

Спасибо!

Зачем кешировать статику? Просто дискового кэша мало? Или обязательно нужна избирательность?
Можно извратиться, настроить нужную директорию как отдельный server или location в nginx, и проксировать запросы на него (nginx будет сам себе бекендом). Ну или самому написать на openresty какое хош кеширование, если хочется странного какого-то нетривиального поведения.

MrClon ★★★★★
()

Автор ищет странное. В норме это делается ядром ОС, а не «софтиной».

Bers666 ★★★★★
()

Поддержку предыдущих ораторов. :) Мне кажется, вы как-то неправильно решаете задачу. Или задача изначально имеет неверную идею.

Если у вас очень-очень-очень много-много-много мелких файлов, то достаточно раскидать их по директориям (для extN <1000 на директорию) или выбрать файловую систему, которой всё равно.

Всё остальное сделает ОС.

Ну, ещё сверху можно добавить браузерный кэш. Чтобы сам клиент дёргал меньше.

lexazloy ★
()

Сделать можно, пишешь правила expires тогда-то для директории, указываешь proxy_cache_path, proxy_cache и как-бы все. Вот только не лучше ли просто директорию на быстрый накопитель/подходящую фс перенести сразу и только выставить expires для браузеров?

anonymous_sama ★★★★★
()

есть несколько каталогов с очень большим количеством маленьких файлов

Звучит как хваленый юзкейс reiserfs

ты забираешь файлы в ОЗУ

Может тогда поднять tmpfs и тупо копировать туда файлы?

upcFrost ★★★★★
()
Ответ на: комментарий от upcFrost

ты забираешь файлы в ОЗУ

Может тогда поднять tmpfs и тупо копировать туда файлы?

А может просто доверить ОС работу с дисковым кэшом?

snaf ★★★★★
()
Ответ на: комментарий от snaf

А может просто доверить ОС работу с дисковым кэшом?

может. но если ТС так хочет сам указывать что запихать в ОЗУ, то можно и tmpfs. а вообще серьезно - вроде как раз на подобном юзкейсе рейзерфс рвала всех конкурентов как тузик грелку

upcFrost ★★★★★
()

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

zudwa ★★
()
Ответ на: комментарий от upcFrost

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

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

dev-ice
() автор топика
Ответ на: комментарий от snaf

А может просто доверить ОС работу с дисковым кэшом?

а линуксовый кэш умеет кэшировать только те файлы к которым было n+ обращений? ну чтобы не забивать его большими редкоиспользуемыми файлами.

prizident ★★★★★
()
Ответ на: комментарий от upcFrost

Давным давно в далекой галактике... У мну на ext2, тупой html сайт (правда файликов там было не много) емнип полгода проработал с мертвым хардом (обнаружилось когда клиент изменения внести попытался). Железка самосбор а-ля десктоп, крутилось под апачем.

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.