Задать вопрос

Кэширование картинок

Здравствуйте. Помогите пожалуйста реализовать такую задачу:

Есть вот такое:

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js)$ { expires 4w; root /var/www/public_html; }
Необходимо добавить в него кэш.
proxy_intercept_errors on; proxy_cache STATIC; proxy_cache_min_uses 5; proxy_cache_valid 1d; proxy_ignore_client_abort on; proxy_temp_path /tmp; proxy_cache_use_stale updating;
При запросе картинки, он искал в папке с кэшем, а если там нет, отдавал с «root /var/www/public_html».
  • Вопрос задан
  • 6430 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
@magic4x
Это, довольно, популярная практика, я тоже так делал. Однако, мне подсказали, что современные фс эффективно кешируют часто запрашиваемые файлы, к тому же, при изменении оригинала, вам не придется выкуривать копию из кеша.
Если у вас не OpenVZ, то не парьтесь и дайте фс делать свою работу.
Ответ написан
avalak
@avalak
Кэш тут не нужен. Совсем. Либо поясните зачем он вам (чего хотите добиться этим).

    ## Serve static
    ## root укажите, если надо
    ## такая регулярка лучше
    location ~* \.(?:js|css|png|jpe?g|gif|ico|htc)$ {
        expires max;
        access_log off;
        log_not_found off;
    }
Ответ написан
Duti_Fruti
@Duti_Fruti Автор вопроса
И еще вопрос. Кто сталкивался, подскажите как лучше реализовать.

Скажем есть друго сервер все с тем же конфигом:

location ~* \.(?:js|css|png|jpe?g|gif|ico|htc)$

Который берет из папки картинки и раздает их, но если ее нет, отдает с первого сервера и ложит в эту папку (но под нормальным именем, а не md5)
Интересует возможность реализации только средствами Nginx, без rsync или других скриптов.
Ответ написан
VBart
@VBart
Оставьте возможность ядру делать свою работу, оно лучше знает. Разница по сравнению с кэшем в user-level на tmpfs, может как не быть, так и быть отрицательной.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы