Path: blob/main/xml/ru/docs/http/ngx_http_headers_module.xml
1 views
<?xml version="1.0"?>12<!--3Copyright (C) Igor Sysoev4Copyright (C) Nginx, Inc.5-->67<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">89<module name="Модуль ngx_http_headers_module"10link="/ru/docs/http/ngx_http_headers_module.html"11lang="ru"12rev="14">1314<section id="summary">1516<para>17Модуль <literal>ngx_http_headers_module</literal> позволяет выдавать18поля заголовка <header>Expires</header> и <header>Cache-Control</header>,19а также добавлять произвольные поля в заголовок ответа.20</para>2122</section>232425<section id="example" name="Пример конфигурации">2627<para>28<example>29expires 24h;30expires modified +24h;31expires @24h;32expires 0;33expires -1;34expires epoch;35expires $expires;36add_header Cache-Control private;37</example>38</para>3940</section>414243<section id="directives" name="Директивы">4445<directive name="add_header">46<syntax>47<value>имя</value> <value>значение</value>48[<literal>always</literal>]</syntax>49<default/>50<context>http</context>51<context>server</context>52<context>location</context>53<context>if в location</context>5455<para>56Добавляет указанное поле в заголовок ответа при условии, что код ответа57равен 200, 201 (1.3.10), 204, 206, 301, 302, 303, 304,58307 (1.1.16, 1.0.13) или 308 (1.13.0).59В значении параметра можно использовать переменные.60</para>6162<para id="add_header_default_inherit">63Директив <literal>add_header</literal> может быть несколько.64Директивы наследуются с предыдущего уровня конфигурации при условии, что65на данном уровне не описаны свои директивы <literal>add_header</literal>.66Правила наследования могут быть переопределены при помощи67директивы <link id="add_header_inherit"/> (1.29.3).68</para>6970<para>71Если указан параметр <literal>always</literal> (1.7.5),72то поле заголовка будет добавлено независимо от кода ответа.73</para>7475</directive>767778<directive name="add_header_inherit">79<syntax>80<literal>on</literal> |81<literal>off</literal> |82<literal>merge</literal></syntax>83<default>on</default>84<context>http</context>85<context>server</context>86<context>location</context>87<context>if in location</context>88<appeared-in>1.29.3</appeared-in>8990<para>91Позволяет изменять правила наследования значений, указанных в92директивах <link id="add_header"/>.93По умолчанию используется94<link id="add_header_default_inherit">стандартная</link> модель наследования.95</para>9697<para>98Параметр <literal>merge</literal> включает добавление значений99с предыдущего уровня к значениям, указанным на текущем уровне.100</para>101102<para>103Параметр <literal>off</literal> отменяет наследование значений104с предыдущего уровня конфигурации.105</para>106107<para>108Сами правила наследования также наследуются стандартным образом.109Например <literal>add_header_inherit merge;</literal>,110определённый на верхнем уровне,111будет рекурсивно наследоваться во всех вложенных уровнях112до тех пор, пока не будет переопределён.113</para>114115</directive>116117118<directive name="add_trailer">119<syntax>120<value>имя</value> <value>значение</value>121[<literal>always</literal>]</syntax>122<default/>123<context>http</context>124<context>server</context>125<context>location</context>126<context>if в location</context>127<appeared-in>1.13.2</appeared-in>128129<para>130Добавляет указанное поле в конец ответа при условии, что код ответа131равен 200, 201, 206, 301, 302, 303, 307 или 308.132В значении можно использовать переменные.133</para>134135<para id="add_trailer_default_inherit">136Директив <literal>add_trailer</literal> может быть несколько.137Директивы наследуются с предыдущего уровня конфигурации при условии, что138на данном уровне не описаны свои директивы <literal>add_trailer</literal>.139Правила наследования могут быть переопределены при помощи140директивы <link id="add_trailer_inherit"/> (1.29.3).141</para>142143<para>144Если указан параметр <literal>always</literal>,145то указанное поле будет добавлено независимо от кода ответа.146</para>147148</directive>149150151<directive name="add_trailer_inherit">152<syntax>153<literal>on</literal> |154<literal>off</literal> |155<literal>merge</literal></syntax>156<default>on</default>157<context>http</context>158<context>server</context>159<context>location</context>160<context>if in location</context>161<appeared-in>1.29.3</appeared-in>162163<para>164Позволяет изменять правила наследования значений, указанных в165директивах <link id="add_trailer"/>.166По умолчанию используется167<link id="add_trailer_default_inherit">стандартная</link> модель наследования.168</para>169170<para>171Параметр <literal>merge</literal> включает добавление значений172с предыдущего уровня к значениям, указанным на текущем уровне.173</para>174175<para>176Параметр <literal>off</literal> отменяет наследование значений177с предыдущего уровня конфигурации.178</para>179180<para>181Сами правила наследования также наследуются стандартным образом.182Например <literal>add_trailer_inherit merge;</literal>,183определённый на верхнем уровне,184будет рекурсивно наследоваться во всех вложенных уровнях185до тех пор, пока не будет переопределён.186</para>187188</directive>189190191<directive name="expires">192<syntax>[<literal>modified</literal>] <value>время</value></syntax>193<syntax>194<literal>epoch</literal> |195<literal>max</literal> |196<literal>off</literal></syntax>197<default>off</default>198<context>http</context>199<context>server</context>200<context>location</context>201<context>if в location</context>202203<para>204Разрешает или запрещает добавлять или менять поля <header>Expires</header>205и <header>Cache-Control</header> в заголовке ответа при условии, что код ответа206равен 200, 201 (1.3.10), 204, 206, 301, 302, 303, 304,207307 (1.1.16, 1.0.13) или 308 (1.13.0).208В качестве параметра можно задать положительное или отрицательное209<link doc="../syntax.xml">время</link>.210</para>211212<para>213Время в поле <header>Expires</header> получается как сумма текущего времени214и времени, заданного в директиве.215Если используется параметр <literal>modified</literal> (0.7.0, 0.6.32),216то время получается как сумма217времени модификации файла и времени, заданного в директиве.218</para>219220<para>221Кроме того, с помощью префикса “<literal>@</literal>” можно задать222время суток (0.7.9, 0.6.34):223<example>224expires @15h30m;225</example>226</para>227228<para>229Содержимое поля <header>Cache-Control</header> зависит от знака230заданного времени:231<list type="bullet">232233<listitem>234отрицательное время — <header>Cache-Control: no-cache</header>.235</listitem>236237<listitem>238положительное или равное нулю время —239<header>Cache-Control: max-age=<value>t</value></header>,240где <value>t</value> это время в секундах, заданное в директиве.241</listitem>242243</list>244</para>245246<para>247Параметр <literal>epoch</literal> задаёт время248“<literal>Thu, 01 Jan 1970 00:00:01 GMT</literal>”249(1 января 1970 00:00:01 GMT) для поля <header>Expires</header>250и “<literal>no-cache</literal>” для поля <header>Cache-Control</header>.251</para>252253<para>254Параметр <literal>max</literal> задаёт время255“<literal>Thu, 31 Dec 2037 23:55:55 GMT</literal>”256(31 декабря 2037 23:55:55 GMT) для поля <header>Expires</header>257и 10 лет для поля <header>Cache-Control</header>.258</para>259260<para>261Параметр <literal>off</literal> запрещает добавлять или менять поля262<header>Expires</header> и <header>Cache-Control</header> в заголовке ответа.263</para>264265<para>266В значении последнего параметра можно использовать переменные (1.7.9):267<example>268map $sent_http_content_type $expires {269default off;270application/pdf 42d;271~image/ max;272}273274expires $expires;275</example>276</para>277278</directive>279280</section>281282</module>283284285