nginx и кеширование

123 4
R
На сайте с 22.12.2009
Offline
94
4497

может ли nginx сам кешировать файлы складывая их себе самостоятельно

у меня получилось лишь сделать так: закачал картинки на сервер где установлен nginx в папку и ощутил что берется с nginx

дело в том что картинки ОЧЕНЬ большие (4-7Мб) и они ресайзятся скриптом

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

хотелось бы так: nginx смотрит если ли этот файл у него (интересуют картинки и JS ) , потом проверяет не обновлялся ли он, если обновлялся то скачивает себе и отдает пользователю, если не обновлялся то отдает пользователю тот что есть

PS: у меня nginx - отдельный сервер, apache - отдельный сервер

R
На сайте с 03.07.2006
Offline
223
#1

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|gif|js)$ {

root /home/site/www_new;

access_log off;

expires 7d;

}

параметр expires 7d; задаёт срок кеширования.

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

Den73
На сайте с 26.06.2010
Offline
523
#2

proxy_store

http://nginx.org/ru/docs/http/ngx_http_proxy_module.html

вы открывали доку хоть раз?

---------- Добавлено 03.03.2013 в 00:18 ----------

rengen:
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|gif|js)$ {
root /home/site/www_new;
access_log off;
expires 7d;
}

параметр expires 7d; задаёт срок кеширования.
ведение лога для картинок отключаю, чтобы снять нагрузку с дисков и сократить размер логов.

это не то что просит тс, у тс-а фронтенд отдельно от бэкенд.

R
На сайте с 03.07.2006
Offline
223
#3
Den73:
proxy_store

http://nginx.org/ru/docs/http/ngx_http_proxy_module.html

вы открывали доку хоть раз?

---------- Добавлено 03.03.2013 в 00:18 ----------



это не то что просит тс, у тс-а фронтенд отдельно от бэкенд.

Может и так.

хотелось бы так: nginx смотрит если ли этот файл у него (интересуют картинки и JS ) , потом проверяет не обновлялся ли он, если обновлялся то скачивает себе и отдает пользователю, если не обновлялся то отдает пользователю тот что есть
R
На сайте с 22.12.2009
Offline
94
#4
rengen:
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|gif|js)$ {
root /home/site/www_new;
access_log off;
expires 7d;
}

параметр expires 7d; задаёт срок кеширования.
ведение лога для картинок отключаю, чтобы снять нагрузку с дисков и сократить размер логов.

nginx у меня 192.168.0.1

apache крутиться на 192.168.0.2

на nginx создал /home/t/

дал полные права

вот полный текст файла конфы для хоста

server {

listen 80;

server_name t.ru www.t.ru;

location / {

proxy_pass http://192.168.0.2:8080/;

index index.php

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real_IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|gif|js)$ {

root /home/t/;

access_log off;

expires 7d;

}

}

несколько раз обновил страницу

в /home/t/ пусто

---------- Добавлено 03.03.2013 в 00:42 ----------

может я криво объяснил

вот возьмем к примеру браузер IE

вы предположим серфите в инете

IE сохраняет какие-то картинки/скрипты и прочую фигню у себя в кеше САМ

и когда вы предположим посещаете снова страницы которые закешились

IE берет картинки у вас с локального компа

M
На сайте с 24.10.2011
Offline
173
#5
Den73
На сайте с 26.06.2010
Offline
523
#6
runseoman:


несколько раз обновил страницу

в /home/t/ пусто

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

M
На сайте с 16.09.2009
Offline
278
#7
rengen:
параметр expires 7d; задаёт срок кеширования.

Это кеширование на стороне пользователя. Помимо прочего, браузер вполне может их и проигнорировать. К примеру, если размер файла достаточно большой. Или expires "мал", по его мнению...

Не понимаешь что спросили - не лезь.

runseoman, вам подробно ответил Den73.

Только вам лучше не proxy_store использовать - а настроить обычное кеширование на уровне протокола HTTP. Читайте про proxy_cache там же. Временем хранения можно управлять обычными заголовками типа Expires на бакенде. Чтобы после перегенерации миниатюры бралось новое изображение - просто поменяйте имя сгенерированного файла.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
R
На сайте с 22.12.2009
Offline
94
#8
Den73:
а что должно быть не пусто? я вам выше написал что нужно крутить что бы бэкенд забирал статику и ложил ее к себе локально сам.

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

M
На сайте с 24.10.2011
Offline
173
#9

runseoman, я дал ссылку, насколько трудно по ней пройти и почитать?

R
На сайте с 22.12.2009
Offline
94
#10

в файле вирт хоста

перед server написал

proxy_cache_path /var/www/t/cache level=1:2 keys_zone=cache:30m max_size=1G;

proxy_temp_path /var/www/t/tempfiles/ 1 2;

в server вставил блок

location ~* ^.+\.(jpg|jpeg|gif|css|js)$ {

proxy_cache cache;

proxy_cache_valid 10m;

}

в результате создался путь /var/www/t/cache и /var/www/t/tempfiles/

в cache - пусто

в tempfiles - через некоторое время появилось куча числовых каталогов, но файлов нет

123 4

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