nginx: раздельные зоны кэша

12
sidorka
На сайте с 17.08.2012
Offline
211
1515

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

proxy_cache_path /var/cache/$host keys_zone=$host

Дешевые домены для дорвеев и не только - от 55р (https://goo.gl/Wtnwqp)
AGHost
На сайте с 16.11.2011
Offline
115
#1

proxy_cache_path нельзя прописать в блоке server, только в http. Разве, что сделать кучу зон и распределить каждую для определенного домена. Костыль выходит ужасный, а для чего Вам нужно разделение кеша?

8 лет на рынке услуг хостинга - https://agho.st (https://agho.st)
sidorka
На сайте с 17.08.2012
Offline
211
#2

AGHost, я в курсе, что нельзя, поэтому и спрашиваю.

Про предложенный костыльный вариант думал, но не знаю, как в весте пройтись циклом по алиасам в шаблоне nginx.

---------- Добавлено 25.07.2016 в 22:15 ----------

С proxy_store думал решить, только вот непонятно как с proxy_cache_bypass и обновлением кэша быть.

AGHost
На сайте с 16.11.2011
Offline
115
#3

Попробуйте через location устанавливать proxy_temp_path, например так:

location @cache {

bytes on;

proxy_temp_path /var/cache/nginx/test.ru 1 2;

proxy_cache cache;

proxy_pass http://....

}

в основном блоке /

if ($host = "test.ru") { return 481; }

error_page 481 = @cache;

Оптимизайка
На сайте с 11.03.2012
Offline
396
#4
AGHost:
Попробуйте через location устанавливать proxy_temp_path

Хорошая идея, особенно в связке с use_temp_path (версия 1.7.10+)

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
sidorka
На сайте с 17.08.2012
Offline
211
#5

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

Самый разумный вариант - явное указание множества зон - переменную хоста выходит все равно никак не получится применить. 200-300 зон не затормозят nginx?

esetnod
На сайте с 16.07.2009
Offline
134
#6

nginx ничто не затормозит :)

Быстрый хостинг на SSD от $0.99 (http://just-hosting.ru/) | OpenVZ (http://just-hosting.ru/vds.html) и KVM (http://just-hosting.ru/vds-kvm.html) VDS от $7.95
AGHost
На сайте с 16.11.2011
Offline
115
#7

sidorka, Вы так и не сказали, зачем вся эта конструкция. Я подумал, что снизить нагрузку на диск, если сделать зоны на разных устройствах.

sidorka
На сайте с 17.08.2012
Offline
211
#8

AGHost, для последующего ручного удаления, ставших ненужными, зон.

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

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

[umka]
На сайте с 25.05.2008
Offline
456
#9

Дед-сервер? 😮

Лог в помощь!
sidorka
На сайте с 17.08.2012
Offline
211
#10

[umka], выделенный сервер писать дольше. Затевалось, чтобы диски разгрузить на бэкэнде.

12

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