Модуль 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;