Модуль ngx_http_headers_module
Пример конфигурации Директивы add_header add_trailer expires |
Модуль ngx_http_headers_module
позволяет выдавать
поля заголовка “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 (1.1.16, 1.0.13) или 308 (1.13.0). В значении параметра можно использовать переменные.
Директив add_header
может быть несколько.
Директивы наследуются с предыдущего уровня конфигурации при условии, что
на данном уровне не описаны свои директивы add_header
.
Если указан параметр always
(1.7.5),
то поле заголовка будет добавлено независимо от кода ответа.
Синтаксис: |
add_trailer
|
---|---|
Умолчание: | — |
Контекст: |
http , server , location , if в location |
Эта директива появилась в версии 1.13.2.
Добавляет указанное поле в конец ответа при условии, что код ответа равен 200, 201, 206, 301, 302, 303, 307 или 308. В значении можно использовать переменные.
Директив add_trailer
может быть несколько.
Директивы наследуются с предыдущего уровня конфигурации при условии, что
на данном уровне не описаны свои директивы add_trailer
.
Если указан параметр always
,
то указанное поле будет добавлено независимо от кода ответа.
Синтаксис: |
expires [ expires
|
---|---|
Умолчание: |
expires off; |
Контекст: |
http , server , location , if в location |
Разрешает или запрещает добавлять или менять поля “Expires” и “Cache-Control” в заголовке ответа при условии, что код ответа равен 200, 201 (1.3.10), 204, 206, 301, 302, 303, 304, 307 (1.1.16, 1.0.13) или 308 (1.13.0). В качестве параметра можно задать положительное или отрицательное время.
Время в поле “Expires” получается как сумма текущего времени
и времени, заданного в директиве.
Если используется параметр modified
(0.7.0, 0.6.32),
то время получается как сумма
времени модификации файла и времени, заданного в директиве.
Кроме того, с помощью префикса “@
” можно задать
время суток (0.7.9, 0.6.34):
expires @15h30m;
Содержимое поля “Cache-Control” зависит от знака заданного времени:
- отрицательное время — “Cache-Control: no-cache”.
-
положительное или равное нулю время —
“Cache-Control: max-age=
t
”, гдеt
это время в секундах, заданное в директиве.
Параметр epoch
задаёт время
“Thu, 01 Jan 1970 00:00:01 GMT
”
(1 января 1970 00:00:01 GMT) для поля “Expires”
и “no-cache
” для поля “Cache-Control”.
Параметр max
задаёт время
“Thu, 31 Dec 2037 23:55:55 GMT
”
(31 декабря 2037 23:55:55 GMT) для поля “Expires”
и 10 лет для поля “Cache-Control”.
Параметр off
запрещает добавлять или менять поля
“Expires” и “Cache-Control” в заголовке ответа.
В значении последнего параметра можно использовать переменные (1.7.9):
map $sent_http_content_type $expires { default off; application/pdf 42d; ~image/ max; } expires $expires;