Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
nginx
GitHub Repository: nginx/nginx.org
Path: blob/main/xml/ru/docs/http/ngx_http_headers_module.xml
1 views
1
<?xml version="1.0"?>
2
3
<!--
4
Copyright (C) Igor Sysoev
5
Copyright (C) Nginx, Inc.
6
-->
7
8
<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
9
10
<module name="Модуль ngx_http_headers_module"
11
link="/ru/docs/http/ngx_http_headers_module.html"
12
lang="ru"
13
rev="14">
14
15
<section id="summary">
16
17
<para>
18
Модуль <literal>ngx_http_headers_module</literal> позволяет выдавать
19
поля заголовка <header>Expires</header> и <header>Cache-Control</header>,
20
а также добавлять произвольные поля в заголовок ответа.
21
</para>
22
23
</section>
24
25
26
<section id="example" name="Пример конфигурации">
27
28
<para>
29
<example>
30
expires 24h;
31
expires modified +24h;
32
expires @24h;
33
expires 0;
34
expires -1;
35
expires epoch;
36
expires $expires;
37
add_header Cache-Control private;
38
</example>
39
</para>
40
41
</section>
42
43
44
<section id="directives" name="Директивы">
45
46
<directive name="add_header">
47
<syntax>
48
<value>имя</value> <value>значение</value>
49
[<literal>always</literal>]</syntax>
50
<default/>
51
<context>http</context>
52
<context>server</context>
53
<context>location</context>
54
<context>if в location</context>
55
56
<para>
57
Добавляет указанное поле в заголовок ответа при условии, что код ответа
58
равен 200, 201 (1.3.10), 204, 206, 301, 302, 303, 304,
59
307 (1.1.16, 1.0.13) или 308 (1.13.0).
60
В значении параметра можно использовать переменные.
61
</para>
62
63
<para id="add_header_default_inherit">
64
Директив <literal>add_header</literal> может быть несколько.
65
Директивы наследуются с предыдущего уровня конфигурации при условии, что
66
на данном уровне не описаны свои директивы <literal>add_header</literal>.
67
Правила наследования могут быть переопределены при помощи
68
директивы <link id="add_header_inherit"/> (1.29.3).
69
</para>
70
71
<para>
72
Если указан параметр <literal>always</literal> (1.7.5),
73
то поле заголовка будет добавлено независимо от кода ответа.
74
</para>
75
76
</directive>
77
78
79
<directive name="add_header_inherit">
80
<syntax>
81
<literal>on</literal> |
82
<literal>off</literal> |
83
<literal>merge</literal></syntax>
84
<default>on</default>
85
<context>http</context>
86
<context>server</context>
87
<context>location</context>
88
<context>if in location</context>
89
<appeared-in>1.29.3</appeared-in>
90
91
<para>
92
Позволяет изменять правила наследования значений, указанных в
93
директивах <link id="add_header"/>.
94
По умолчанию используется
95
<link id="add_header_default_inherit">стандартная</link> модель наследования.
96
</para>
97
98
<para>
99
Параметр <literal>merge</literal> включает добавление значений
100
с предыдущего уровня к значениям, указанным на текущем уровне.
101
</para>
102
103
<para>
104
Параметр <literal>off</literal> отменяет наследование значений
105
с предыдущего уровня конфигурации.
106
</para>
107
108
<para>
109
Сами правила наследования также наследуются стандартным образом.
110
Например <literal>add_header_inherit merge;</literal>,
111
определённый на верхнем уровне,
112
будет рекурсивно наследоваться во всех вложенных уровнях
113
до тех пор, пока не будет переопределён.
114
</para>
115
116
</directive>
117
118
119
<directive name="add_trailer">
120
<syntax>
121
<value>имя</value> <value>значение</value>
122
[<literal>always</literal>]</syntax>
123
<default/>
124
<context>http</context>
125
<context>server</context>
126
<context>location</context>
127
<context>if в location</context>
128
<appeared-in>1.13.2</appeared-in>
129
130
<para>
131
Добавляет указанное поле в конец ответа при условии, что код ответа
132
равен 200, 201, 206, 301, 302, 303, 307 или 308.
133
В значении можно использовать переменные.
134
</para>
135
136
<para id="add_trailer_default_inherit">
137
Директив <literal>add_trailer</literal> может быть несколько.
138
Директивы наследуются с предыдущего уровня конфигурации при условии, что
139
на данном уровне не описаны свои директивы <literal>add_trailer</literal>.
140
Правила наследования могут быть переопределены при помощи
141
директивы <link id="add_trailer_inherit"/> (1.29.3).
142
</para>
143
144
<para>
145
Если указан параметр <literal>always</literal>,
146
то указанное поле будет добавлено независимо от кода ответа.
147
</para>
148
149
</directive>
150
151
152
<directive name="add_trailer_inherit">
153
<syntax>
154
<literal>on</literal> |
155
<literal>off</literal> |
156
<literal>merge</literal></syntax>
157
<default>on</default>
158
<context>http</context>
159
<context>server</context>
160
<context>location</context>
161
<context>if in location</context>
162
<appeared-in>1.29.3</appeared-in>
163
164
<para>
165
Позволяет изменять правила наследования значений, указанных в
166
директивах <link id="add_trailer"/>.
167
По умолчанию используется
168
<link id="add_trailer_default_inherit">стандартная</link> модель наследования.
169
</para>
170
171
<para>
172
Параметр <literal>merge</literal> включает добавление значений
173
с предыдущего уровня к значениям, указанным на текущем уровне.
174
</para>
175
176
<para>
177
Параметр <literal>off</literal> отменяет наследование значений
178
с предыдущего уровня конфигурации.
179
</para>
180
181
<para>
182
Сами правила наследования также наследуются стандартным образом.
183
Например <literal>add_trailer_inherit merge;</literal>,
184
определённый на верхнем уровне,
185
будет рекурсивно наследоваться во всех вложенных уровнях
186
до тех пор, пока не будет переопределён.
187
</para>
188
189
</directive>
190
191
192
<directive name="expires">
193
<syntax>[<literal>modified</literal>] <value>время</value></syntax>
194
<syntax>
195
<literal>epoch</literal> |
196
<literal>max</literal> |
197
<literal>off</literal></syntax>
198
<default>off</default>
199
<context>http</context>
200
<context>server</context>
201
<context>location</context>
202
<context>if в location</context>
203
204
<para>
205
Разрешает или запрещает добавлять или менять поля <header>Expires</header>
206
и <header>Cache-Control</header> в заголовке ответа при условии, что код ответа
207
равен 200, 201 (1.3.10), 204, 206, 301, 302, 303, 304,
208
307 (1.1.16, 1.0.13) или 308 (1.13.0).
209
В качестве параметра можно задать положительное или отрицательное
210
<link doc="../syntax.xml">время</link>.
211
</para>
212
213
<para>
214
Время в поле <header>Expires</header> получается как сумма текущего времени
215
и времени, заданного в директиве.
216
Если используется параметр <literal>modified</literal> (0.7.0, 0.6.32),
217
то время получается как сумма
218
времени модификации файла и времени, заданного в директиве.
219
</para>
220
221
<para>
222
Кроме того, с помощью префикса “<literal>@</literal>” можно задать
223
время суток (0.7.9, 0.6.34):
224
<example>
225
expires @15h30m;
226
</example>
227
</para>
228
229
<para>
230
Содержимое поля <header>Cache-Control</header> зависит от знака
231
заданного времени:
232
<list type="bullet">
233
234
<listitem>
235
отрицательное время — <header>Cache-Control: no-cache</header>.
236
</listitem>
237
238
<listitem>
239
положительное или равное нулю время —
240
<header>Cache-Control: max-age=<value>t</value></header>,
241
где <value>t</value> это время в секундах, заданное в директиве.
242
</listitem>
243
244
</list>
245
</para>
246
247
<para>
248
Параметр <literal>epoch</literal> задаёт время
249
<literal>Thu, 01 Jan 1970 00:00:01 GMT</literal>
250
(1 января 1970 00:00:01 GMT) для поля <header>Expires</header>
251
и “<literal>no-cache</literal>” для поля <header>Cache-Control</header>.
252
</para>
253
254
<para>
255
Параметр <literal>max</literal> задаёт время
256
<literal>Thu, 31 Dec 2037 23:55:55 GMT</literal>
257
(31 декабря 2037 23:55:55 GMT) для поля <header>Expires</header>
258
и 10 лет для поля <header>Cache-Control</header>.
259
</para>
260
261
<para>
262
Параметр <literal>off</literal> запрещает добавлять или менять поля
263
<header>Expires</header> и <header>Cache-Control</header> в заголовке ответа.
264
</para>
265
266
<para>
267
В значении последнего параметра можно использовать переменные (1.7.9):
268
<example>
269
map $sent_http_content_type $expires {
270
default off;
271
application/pdf 42d;
272
~image/ max;
273
}
274
275
expires $expires;
276
</example>
277
</para>
278
279
</directive>
280
281
</section>
282
283
</module>
284
285