Модуль ngx_http_headers_module позволяет выдавать
поля заголовка “Expires” и “Cache-Control”,
а также добавлять произвольные поля в заголовок ответа.
Пример конфигурации
expires 24h;
expires modified +24h;
expires @24h;
expires 0;
expires -1;
expires epoch;
add_header Cache-Control private;
Директивы
синтаксис:
|
add_header имя значение ;
|
умолчание:
|
—
|
контекст:
|
http , server , location , if в location
|
Добавляет указанное поле в заголовок ответа при условии, что код ответа
равен 200, 201, 204, 206, 301, 302, 303, 304 или 307.
В значении можно использовать переменные.
Директив add_header может быть несколько.
Директивы наследуются с предыдущего уровня при условии, что на данном
уровне не описаны свои директивы add_header .
синтаксис:
|
expires [modified ] время ;
expires
epoch |
max |
off ;
|
умолчание:
|
expires off;
|
контекст:
|
http , server , location , if в location
|
Разрешает или запрещает добавлять или менять поля “Expires”
и “Cache-Control” в заголовке ответа при условии, что код ответа
равен 200, 201, 204, 206, 301, 302, 303, 304 или 307.
В качестве параметра можно задать положительное или отрицательное
время.
Время в поле “Expires” получается как сумма текущего времени
и времени, заданного в директиве.
Если используется параметр modified (0.7.0, 0.6.32),
то время получается как сумма
времени модификации файла и времени, заданного в директиве.
Кроме того, с помощью префикса “@ ” можно задать
время суток (0.7.9, 0.6.34):
expires @15h30m;
Параметр epoch соответствует абсолютному времени
“Thu, 01 Jan 1970 00:00:01 GMT ”
(1 января 1970 года 00:00:01 GMT).
Содержимое поля “Cache-Control” зависит от знака
заданного времени:
-
отрицательное время — “Cache-Control: no-cache”.
-
положительное или равное нулю время —
“Cache-Control: max-age=
t ”,
где t это время в секундах, заданное в директиве.
Параметр max задаёт время
“Thu, 31 Dec 2037 23:55:55 GMT ”
(31 декабря 2037 23:55:55 GMT) для поля “Expires”
и 10 лет для поля “Cache-Control”.
Параметр off запрещает добавлять или менять поля
“Expires” и “Cache-Control” в заголовке ответа.
|