Re: Задать время кэша для отдельного файла
Maxim Dounin
mdounin на mdounin.ru
Чт Окт 22 20:46:43 UTC 2015
Hello!
On Thu, Oct 22, 2015 at 08:54:59AM -0400, grey wrote:
> На сервере есть папка /images/. Для нее в конфиге настроено кэширование на 3
> дня:
>
> location ~* ^/images/.+.(jpg|jpeg|gif)$ {
> root /wwwroot/site.ru/;
> expires 3d;
> }
>
> В этой же папке лежит файл 404.jpg, его php скрипты отдают тогда, когда
> страница не найдена. Сам скрипт:
>
> header("X-Accel-Redirect: /images/404.jpg");
>
> Хотелось бы для этого файла поставить время кэширования отличное от 3 дней.
Проще и правильнее всего так:
location = /images/404.jpg {
expires epoch;
}
Подробнее о том, как писать location'ы, можно почитать тут:
http://nginx.org/r/location/ru
> Пробовал делать:
>
> header ("Expires: ".gmdate("D, d M Y H:i:s \G\M\T", time()*846000));
> или
> header ("X-Accel-Expires: 864000");
> header ("X-Accel-Redirect: /images/404.jpg");
>
> не получается. nginx игнорирует заголовки.
Заголовок Expires из исходного ответа с X-Accel-Redirect при
перенаправлении добавлен к заголовкам ответа. Однако директива
expires в вашем конфиге - заменит его на то, что указано в ней.
Потому и не получается.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru