Headers#
Позволяет выдавать поля заголовка «Expires» и «Cache-Control», а также добавлять произвольные поля в заголовок ответа.
Пример конфигурации#
expires 24h;
expires modified +24h;
expires @24h;
expires 0;
expires -1;
expires epoch;
expires $expires;
add_header Cache-Control private;
Директивы#
add_header#
|
|
По умолчанию |
— |
http, server, location, if в location |
Добавляет указанное поле в заголовок ответа при условии, что код ответа равен 200, 201 (1.3.10), 204, 206, 301, 302, 303, 304, 307 или 308. В значении параметра можно использовать переменные.
Директив add_header может быть несколько. Директивы наследуются с предыдущего уровня конфигурации при условии, что на данном уровне не описаны свои директивы add_header.
Если указан параметр always
, то поле заголовка будет добавлено независимо от кода ответа.
add_trailer#
|
|
По умолчанию |
— |
http, server, location, if в location |
Добавляет указанное поле в конец ответа при условии, что код ответа равен 200, 201, 206, 301, 302, 303, 307 или 308. В значении можно использовать переменные.
Директив add_trailer может быть несколько. Директивы наследуются с предыдущего уровня конфигурации при условии, что на данном уровне не описаны свои директивы add_trailer.
Если указан параметр always
, то указанное поле будет добавлено независимо от кода ответа.
expires#
|
|
По умолчанию |
|
http, server, location, if в location |
Разрешает или запрещает добавлять или менять поля «Expires» и «Cache-Control» в заголовке ответа при условии, что код ответа равен 200, 201, 204, 206, 301, 302, 303, 304, 307 или 308. В качестве параметра можно задать положительное или отрицательное время.
Время в поле «Expires» получается как сумма текущего времени и времени, заданного в директиве. Если используется параметр modified
, то время получается как сумма времени модификации файла и времени, заданного в директиве.
Кроме того, с помощью префикса «@» можно задать время суток:
expires @15h30m;
Содержимое поля «Cache-Control» зависит от знака заданного времени:
отрицательное время — «Cache-Control: no-cache».
положительное или равное нулю время — «Cache-Control: max-age=`t`», где t это время в секундах, заданное в директиве.
|
задает время «Thu, 01 Jan 1970 00:00:01 GMT» (1 января 1970 00:00:01 GMT) для поля «Expires» и «no-cache» для поля «Cache-Control». |
|
задает время «Thu, 31 Dec 2037 23:55:55 GMT» (31 декабря 2037 23:55:55 GMT) для поля «Expires» и 10 лет для поля «Cache-Control». |
|
запрещает добавлять или менять поля «Expires» и «Cache-Control» в заголовке ответа. |
В значении последнего параметра можно использовать переменные:
map $sent_http_content_type $expires {
default off;
application/pdf 42d;
~image/ max;
}
expires $expires;