Mercurial > hg > nginx-site
comparison xml/ru/docs/http/ngx_http_core_module.xml @ 253:ff1e139a8c98
Bring the ngx_http_core_module documentation up to date.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Mon, 19 Dec 2011 13:10:05 +0000 |
parents | bfe3eff81d04 |
children | 945d7299c26c |
comparison
equal
deleted
inserted
replaced
252:6f710464be38 | 253:ff1e139a8c98 |
---|---|
1 <?xml version="1.0"?> | 1 <?xml version="1.0"?> |
2 | 2 |
3 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> | 3 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> |
4 | 4 |
5 <module name="Директивы модуля ngx_http_core_module" | 5 <module name="Модуль ngx_http_core_module" |
6 link="/ru/docs/http/ngx_http_core_module.html" | 6 link="/ru/docs/http/ngx_http_core_module.html" |
7 lang="ru"> | 7 lang="ru"> |
8 | 8 |
9 <section name="Директивы" id="directives"> | 9 <section id="directives" name="Директивы"> |
10 | 10 |
11 <directive name="aio"> | 11 <directive name="aio"> |
12 <syntax><value>[on|off|sendfile]</value></syntax> | 12 <syntax> |
13 <value>on</value> | | |
14 <value>off</value> | | |
15 <value>sendfile</value> | |
16 </syntax> | |
13 <default>off</default> | 17 <default>off</default> |
14 <context>http, server, location</context> | 18 <context>http</context> |
15 | 19 <context>server</context> |
16 <para> | 20 <context>location</context> |
17 Директива (0.8.11) разрешает или запрещает использовать файловый AIO | 21 <appeared-in>0.8.11</appeared-in> |
22 | |
23 <para> | |
24 Разрешает или запрещает использование файлового асинхронного ввода-вывода (AIO) | |
18 во FreeBSD и Linux. | 25 во FreeBSD и Linux. |
19 </para> | 26 </para> |
20 | 27 |
21 <para> | 28 <para> |
22 Во FreeBSD AIO можно использовать, начиная с FreeBSD 4.3 версии. | 29 Во FreeBSD AIO можно использовать, начиная с FreeBSD 4.3. |
23 AIO можно собрать в ядре статически | 30 AIO можно либо собрать в ядре статически: |
24 <example> | 31 <example> |
25 options VFS_AIO | 32 options VFS_AIO |
26 </example> | 33 </example> |
27 или же подгрузить динамически | 34 либо загрузить динамически через загружаемый модуль ядра: |
28 <example> | 35 <example> |
29 kldload aio | 36 kldload aio |
30 </example> | 37 </example> |
31 </para> | 38 </para> |
32 | 39 |
33 <para> | 40 <para> |
34 Во FreeBSD 5 и 6 при включении AIO статически или динамически на стадии | 41 В версиях FreeBSD 5 и 6 включение AIO статически или динамически |
35 загрузки ядра вся сетевая подсистема будет использовать GiantLock, | 42 на стадии загрузки ядра приводит к тому, что вся сетевая подсистема |
36 что может негативно сказаться на производительности системы в целом. | 43 будет использовать блокировку Giant, что может негативно сказаться на |
37 Эта зависимость устранена во FreeBSD-6.4 STABLE от 2009 года и во FreeBSD 7. | 44 производительности системы в целом. |
38 Однако, начиная с FreeBSD 5.3, есть возможность включать AIO, | 45 Это ограничение устранено во FreeBSD 6.4-STABLE в 2009 году |
39 не связывая сетевую подсистему GiantLock'ом — для этого модуль AIO | 46 и во FreeBSD 7. |
40 нужно подгружать уже после загрузки ядра. | 47 Однако, начиная с FreeBSD 5.3 есть возможность включать AIO, |
41 В этом случае в /var/log/messages появится сообщение | 48 не связывая сетевую подсистему блокировкой Giant — для этого модуль |
49 AIO нужно подгружать уже после загрузки ядра. | |
50 В этом случае в <path>/var/log/messages</path> появится следующее сообщение: | |
42 <example> | 51 <example> |
43 WARNING: Network stack Giant-free, but aio requires Giant. | 52 WARNING: Network stack Giant-free, but aio requires Giant. |
44 Consider adding 'options NET_WITH_GIANT' or setting debug.mpsafenet=0 | 53 Consider adding 'options NET_WITH_GIANT' or setting debug.mpsafenet=0 |
45 </example> | 54 </example> |
46 которое можно смело проигнорировать. | 55 которое можно смело проигнорировать. |
47 <note> | 56 <note> |
48 Требование использовать GiantLock в AIO связано с тем, что FreeBSD | 57 Требование использовать блокировку Giant в AIO связано с тем, что |
49 поддерживает асинхронные вызовы aio_read()/aio_write() для работы с сокетами. | 58 FreeBSD поддерживает асинхронные вызовы |
50 Но поскольку nginx использует AIO только для работы с диском, то проблем | 59 <c-func>aio_read</c-func> |
51 не возникает. | 60 и |
61 <c-func>aio_write</c-func> | |
62 для работы с сокетами. | |
63 Но поскольку nginx использует AIO только для работы с диском, | |
64 то проблем не возникает. | |
52 </note> | 65 </note> |
53 </para> | 66 </para> |
54 | 67 |
55 <para> | 68 <para> |
56 Для работы AIO нужно выключить sendfile: | 69 Для работы AIO нужно выключить |
57 <example> | 70 <link id="sendfile"/>: |
58 location /video/ { | 71 <example> |
59 sendfile off; | 72 location /video/ { |
60 aio on; | 73 sendfile off; |
61 output_buffers 1 64k; | 74 aio on; |
62 } | 75 output_buffers 1 64k; |
63 </example> | 76 } |
64 </para> | 77 </example> |
65 | 78 </para> |
66 <para> | 79 |
67 Кроме того, начиная с FreeBSD 5.2.1 и nginx-0.8.12, AIO также можно | 80 <para> |
68 использовать для подгрузки данных для sendfile(): | 81 Кроме того, начиная с FreeBSD 5.2.1 и nginx 0.8.12, AIO также можно |
69 <example> | 82 использовать для подгрузки данных для <c-func>sendfile</c-func>: |
70 location /video/ { | 83 <example> |
71 sendfile on; | 84 location /video/ { |
72 tcp_nopush on; | 85 sendfile on; |
73 aio sendfile; | 86 tcp_nopush on; |
74 } | 87 aio sendfile; |
75 </example> | 88 } |
76 В такой конфигурации используется флаг SF_NODISKIO и sendfile() | 89 </example> |
77 не блокируется на диске, а сообщает об отсутствии данных в памяти, | 90 В такой конфигурации функция <c-func>sendfile</c-func> вызывается с флагом |
78 после чего nginx инициирует асинхронную подгрузку данных, | 91 <c-def>SF_NODISKIO</c-def>, в результате она не блокируется на диске, а |
79 читая только один байт. При этом ядро FreeBSD подгружает в память | 92 сообщает об отсутствии данных в памяти, после чего nginx инициирует |
80 первые 128K файла, однако при последующих чтениях файл подгружается | 93 асинхронную подгрузку данных, читая только один байт. |
81 частями только по 16K. Изменить это можно с помощью директивы | 94 При этом ядро FreeBSD подгружает в память первые 128K байт файла, однако |
95 при последующих чтениях файл подгружается частями только по 16K. | |
96 Изменить это можно с помощью директивы | |
82 <link id="read_ahead"/>. | 97 <link id="read_ahead"/>. |
83 </para> | 98 </para> |
84 | 99 |
85 <para> | 100 <para> |
86 В Linux AIO можно использовать, только начиная с версии ядра 2.6.22, | 101 В Linux AIO можно использовать только начиная с версии ядра 2.6.22, и, |
87 и, кроме того, ещё необходимо дополнительно включать | 102 кроме того, ещё необходимо дополнительно включать |
88 <link id="directio"/>, иначе чтение будет блокирующимся: | 103 <link id="directio"/>, |
89 <example> | 104 иначе чтение будет блокирующимся: |
90 location /video/ { | 105 <example> |
91 aio on; | 106 location /video/ { |
92 directio 512; | 107 aio on; |
93 output_buffers 1 128k; | 108 directio 512; |
94 } | 109 output_buffers 1 128k; |
95 </example> | 110 } |
96 </para> | 111 </example> |
97 | 112 </para> |
98 <para> | 113 |
99 Поскольку directio в Linux можно использовать только для чтения блоков, | 114 <para> |
100 выравненных по 512 байт (или 4К для XFS), то невыравненный конец файла | 115 Поскольку |
101 будет читаться блокировано. То же относится к запросам части ответа | 116 <link id="directio"/> |
102 byte-ranges и к запросам FLV не с начала файла: чтение невыровненных начала | 117 в Linux можно использовать только для чтения блоков, выравненных |
103 и конца ответа будет блокирующимся. sendfile выключать не нужно, так | 118 на границу 512 байт (или 4К для XFS), то невыравненный конец файла |
104 как при использовании directio он выключается сам. | 119 будет читаться блокированно. |
120 То же относится к запросам с указанием диапазона запрашиваемых байт | |
121 (byte-range requests) и к запросам FLV не с начала файла: чтение | |
122 невыравненных начала и конца ответа будет блокирующимся. | |
123 Явно выключать | |
124 <link id="sendfile"/> | |
125 не нужно, так как при использовании | |
126 <link id="directio"/> | |
127 он выключается автоматически. | |
105 </para> | 128 </para> |
106 | 129 |
107 </directive> | 130 </directive> |
108 | 131 |
109 | 132 |
110 <directive name="alias"> | 133 <directive name="alias"> |
111 <syntax><value>путь</value></syntax> | 134 <syntax><argument>путь</argument></syntax> |
112 <default/> | 135 <default/> |
113 <context>location</context> | 136 <context>location</context> |
114 | 137 |
115 <para> | 138 <para> |
116 Директива задаёт замену для указанного location'а. | 139 Задаёт замену для указанного location'а. |
117 Например, при такой конфигурации | 140 Например, при такой конфигурации |
118 <example> | 141 <example> |
119 location /i/ { | 142 location /i/ { |
120 alias /data/w3/images/; | 143 alias /data/w3/images/; |
121 } | 144 } |
122 </example> | 145 </example> |
123 на запрос "/i/top.gif" будет отдан файл "/data/w3/images/top.gif". | 146 на запрос |
124 </para> | 147 “<code>/i/top.gif</code>” будет отдан файл |
125 | 148 <path>/data/w3/images/top.gif</path>. |
126 <para> | 149 </para> |
127 В значении пути можно использовать переменные. | 150 |
128 </para> | 151 <para> |
129 | 152 В значении аргумента <argument>путь</argument> можно использовать переменные, |
130 <para> | 153 кроме <var>$document_root</var> и <var>$realpath_root</var>. |
131 Если директива alias используется внутри location'а, заданного | 154 </para> |
132 регулярным выражением, то регулярное выражение должно содержать выделения, | 155 |
133 а директива alias — ссылки на эти выделения (0.7.40), например: | 156 <para> |
157 Если <code>alias</code> используется внутри location'а, заданного | |
158 регулярным выражением, то регулярное выражение должно содержать | |
159 выделения, а сам <code>alias</code> — ссылки на эти выделения | |
160 (0.7.40), например: | |
134 <example> | 161 <example> |
135 location ~ ^/users/(.+\.(?:gif|jpe?g|png))$ { | 162 location ~ ^/users/(.+\.(?:gif|jpe?g|png))$ { |
136 alias /data/w3/images/$1; | 163 alias /data/w3/images/$1; |
137 } | 164 } |
138 </example> | 165 </example> |
139 </para> | 166 </para> |
140 | 167 |
141 <para> | 168 <para> |
142 Если location и последняя часть значения директивы совпадают: | 169 Если location и последняя часть значения директивы совпадают: |
143 <example> | 170 <example> |
144 location /images/ { | 171 location /images/ { |
145 alias /data/w3/images/; | 172 alias /data/w3/images/; |
146 } | 173 } |
147 </example> | 174 </example> |
148 то лучше воспользоваться директивой <link id="root"/>: | 175 то лучше воспользоваться директивой |
149 <example> | 176 <link id="root"/>: |
150 location /images/ { | 177 <example> |
151 root /data/w3; | 178 location /images/ { |
152 } | 179 root /data/w3; |
153 </example> | 180 } |
181 </example> | |
182 </para> | |
183 | |
184 </directive> | |
185 | |
186 | |
187 <directive name="chunked_transfer_encoding"> | |
188 <syntax><value>on</value> | <value>off</value></syntax> | |
189 <default>on</default> | |
190 <context>http</context> | |
191 <context>server</context> | |
192 <context>location</context> | |
193 | |
194 <para> | |
195 Позволяет запретить формат передачи данных частями (chunked transfer | |
196 encoding) в HTTP/1.1. | |
197 Это может понадобиться при использовании программ, не поддерживающих | |
198 chunked encoding, несмотря на требования стандарта. | |
199 </para> | |
200 | |
201 </directive> | |
202 | |
203 | |
204 <directive name="client_body_buffer_size"> | |
205 | |
206 <syntax><argument>размер</argument></syntax> | |
207 <default>8k|16k</default> | |
208 <context>http</context> | |
209 <context>server</context> | |
210 <context>location</context> | |
211 | |
212 <para> | |
213 Задаёт размер буфера для чтения тела запроса клиента. | |
214 Если тело запроса больше заданного буфера, | |
215 то всё тело запроса или только его часть записывается во | |
216 <link id="client_body_temp_path">временный файл</link>. | |
217 По умолчанию размер одного буфера равен двум размерам страницы. | |
218 На x86, других 32-битных платформах и x86-64 это 8K. | |
219 На других 64-битных платформах это обычно 16K. | |
154 </para> | 220 </para> |
155 | 221 |
156 </directive> | 222 </directive> |
157 | 223 |
158 | 224 |
159 <directive name="client_body_in_file_only"> | 225 <directive name="client_body_in_file_only"> |
160 <syntax><value>on|clean|off</value></syntax> | 226 <syntax> |
227 <value>on</value> | | |
228 <value>clean</value> | | |
229 <value>off</value> | |
230 </syntax> | |
161 <default>off</default> | 231 <default>off</default> |
162 <context>http, server, location</context> | 232 <context>http</context> |
163 | 233 <context>server</context> |
164 <para> | 234 <context>location</context> |
165 Директива определяет, сохранять ли всё тело запроса клиента в файл. | 235 |
166 Директиву можно использовать для отладки и при использовании | 236 <para> |
167 переменной $request_body_file или метода | 237 Определяет, сохранять ли всё тело запроса клиента в файл. |
168 <link doc="ngx_http_perl_module.xml" id="methods">$r->request_body_file</link> | 238 Директиву можно использовать для отладки и при использовании переменной |
169 модуля ngx_http_perl_module. | 239 <var>$request_body_file</var> |
170 </para> | 240 или метода |
171 | 241 <link doc="ngx_http_perl_module.xml" id="methods">$r->request_body_file</link> |
172 <para> | 242 модуля |
173 При использовании параметра "on" временные файлы по окончании | 243 <link doc="ngx_http_perl_module.xml">ngx_http_perl_module</link>. |
174 обработки запроса не удаляется. | 244 </para> |
175 </para> | 245 |
176 | 246 <para> |
177 <para> | 247 При установке значения <value>on</value> временные файлы |
178 Параметр "clean" разрешает удалять временные файлы, оставшиеся по окончании | 248 по окончании обработки запроса не удаляются. |
179 обработки запроса. | 249 </para> |
250 | |
251 <para> | |
252 Значение <value>clean</value> разрешает удалять временные файлы, | |
253 оставшиеся по окончании обработки запроса. | |
180 </para> | 254 </para> |
181 | 255 |
182 </directive> | 256 </directive> |
183 | 257 |
184 | 258 |
185 <directive name="client_body_in_single_buffer"> | 259 <directive name="client_body_in_single_buffer"> |
186 <syntax><value>on|off</value></syntax> | 260 <syntax><value>on</value> | <value>off</value> |
261 </syntax> | |
187 <default>off</default> | 262 <default>off</default> |
188 <context>http, server, location</context> | 263 <context>http</context> |
189 | 264 <context>server</context> |
190 <para> | 265 <context>location</context> |
191 Директива определяет, хранить ли всё тело запроса клиента в одном буфере. | 266 |
192 Директива рекомендуется при использовании переменной $request_body | 267 <para> |
193 для уменьшения операций копирования. | 268 Определяет, сохранять ли всё тело запроса клиента в одном буфере. |
194 </para> | 269 Директива рекомендуется при использовании переменной |
195 | 270 <var>$request_body</var> |
196 </directive> | 271 для уменьшения требуемого числа операций копирования. |
197 | |
198 | |
199 <directive name="client_body_buffer_size"> | |
200 <syntax><value>размер</value></syntax> | |
201 <default>8k/16k</default> | |
202 <context>http, server, location</context> | |
203 | |
204 <para> | |
205 Директива задаёт размер буфера для чтения тела запроса клиента. | |
206 Если тело запроса больше заданного буфера, то всё тело запроса или только | |
207 его часть записывается во временный файл. | |
208 По умолчанию размер одного буфера равен двум размерам страницы, в зависимости | |
209 от платформы это или 8K, или 16K. | |
210 </para> | 272 </para> |
211 | 273 |
212 </directive> | 274 </directive> |
213 | 275 |
214 | 276 |
215 <directive name="client_body_temp_path"> | 277 <directive name="client_body_temp_path"> |
216 <syntax><value>путь [ уровень1 [ уровень2 [ уровень3 ] ] ] | 278 <syntax> |
217 </value></syntax> | 279 <argument>путь</argument> |
280 [<argument>уровень1</argument> | |
281 [<argument>уровень2</argument> | |
282 [<argument>уровень3</argument>]]] | |
283 </syntax> | |
218 <default>client_body_temp</default> | 284 <default>client_body_temp</default> |
219 <context>http, server, location</context> | 285 <context>http</context> |
220 | 286 <context>server</context> |
221 <para> | 287 <context>location</context> |
222 Директива задаёт имя каталога для хранения временных файлов с телом запроса | 288 |
223 клиента. | 289 <para> |
290 Задаёт каталог для хранения временных файлов с телами запросов клиентов. | |
224 В каталоге может использоваться иерархия подкаталогов до трёх уровней. | 291 В каталоге может использоваться иерархия подкаталогов до трёх уровней. |
225 Например, при такой конфигурации | 292 Например, при такой конфигурации |
226 <example> | 293 <example> |
227 client_body_temp_path /spool/nginx/client_temp 1 2; | 294 client_body_temp_path /spool/nginx/client_temp 1 2; |
228 </example> | 295 </example> |
229 имя временного будет такого вида: | 296 временный файл будет следующего вида: |
230 <example> | 297 <example> |
231 /spool/nginx/client_temp/7/45/00000123457 | 298 /spool/nginx/client_temp/7/45/00000123457 |
232 </example> | 299 </example> |
233 </para> | 300 </para> |
234 | 301 |
235 </directive> | 302 </directive> |
236 | 303 |
237 | 304 |
238 <directive name="client_body_timeout"> | 305 <directive name="client_body_timeout"> |
239 <syntax><value>время</value></syntax> | 306 <syntax><argument>время</argument></syntax> |
240 <default>60</default> | 307 <default>60s</default> |
241 <context>http, server, location</context> | 308 <context>http</context> |
242 | 309 <context>server</context> |
243 <para> | 310 <context>location</context> |
244 Директива задаёт таймаут при чтении тела запроса клиента. | 311 |
312 <para> | |
313 Задаёт таймаут при чтении тела запроса клиента. | |
245 Таймаут устанавливается не на всю передачу тела запроса, | 314 Таймаут устанавливается не на всю передачу тела запроса, |
246 а только между двумя операциями чтения. | 315 а только между двумя последовательными операциями чтения. |
247 Если по истечении этого времени клиент ничего не передаст, | 316 Если по истечении этого времени клиент ничего не передаст, |
248 то ему возвращается ошибка "Request time out" (408). | 317 то клиенту возвращается ошибка |
318 <http-status code="408" text="Request Time-out"/>. | |
249 </para> | 319 </para> |
250 | 320 |
251 </directive> | 321 </directive> |
252 | 322 |
253 | 323 |
254 <directive name="client_header_buffer_size"> | 324 <directive name="client_header_buffer_size"> |
255 <syntax><value>размер</value></syntax> | 325 <syntax><argument>размер</argument></syntax> |
256 <default>1k</default> | 326 <default>1k</default> |
257 <context>http, server</context> | 327 <context>http</context> |
258 | 328 <context>server</context> |
259 <para> | 329 |
260 Директива задаёт размер буфера для чтения заголовка запроса клиента. | 330 <para> |
261 Для подавляющего большинства запросов вполне достаточно буфера размером в 1K. | 331 Задаёт размер буфера для чтения заголовка запроса клиента. |
262 Однако если в запросе есть большие cookies или же запрос пришёл | 332 Для большинства запросов достаточно буфера размером в 1K байт. |
263 от wap-клиента, то он может не поместиться в 1K. | 333 Однако если в запросе есть длинные cookies, или же запрос |
264 Поэтому, если строка запроса или строка заголовка запроса не помещается | 334 пришёл от WAP-клиента, то он может не поместиться в 1K. |
265 полностью в этот буфер, то выделяются большие буферы, задаваемые директивой | 335 Поэтому, если строка запроса или поле заголовка запроса |
336 не помещаются полностью в этот буфер, то выделяются буферы | |
337 большего размера, задаваемые директивой | |
266 <link id="large_client_header_buffers"/>. | 338 <link id="large_client_header_buffers"/>. |
267 </para> | 339 </para> |
268 | 340 |
269 </directive> | 341 </directive> |
270 | 342 |
271 | 343 |
272 <directive name="client_header_timeout"> | 344 <directive name="client_header_timeout"> |
273 <syntax><value>время</value></syntax> | 345 <syntax><argument>время</argument></syntax> |
274 <default>60</default> | 346 <default>60s</default> |
275 <context>http, server</context> | 347 <context>http</context> |
276 | 348 <context>server</context> |
277 <para> | 349 |
278 Директива задаёт таймаут при чтении заголовка запроса клиента. | 350 <para> |
279 Если по истечении этого времени клиент не передаст полностью заголовок | 351 Задаёт таймаут при чтении заголовка запроса клиента. |
280 запроса, то ему возвращается ошибка "Request time out" (408). | 352 Если по истечении этого времени клиент не передаст полностью заголовок, |
353 то клиенту возвращается ошибка | |
354 <http-status code="408" text="Request Time-out"/>. | |
281 </para> | 355 </para> |
282 | 356 |
283 </directive> | 357 </directive> |
284 | 358 |
285 | 359 |
286 <directive name="client_max_body_size"> | 360 <directive name="client_max_body_size"> |
287 <syntax><value>размер</value></syntax> | 361 <syntax><argument>размер</argument></syntax> |
288 <default>1m</default> | 362 <default>1m</default> |
289 <context>http, server, location</context> | 363 <context>http</context> |
290 | 364 <context>server</context> |
291 <para> | 365 <context>location</context> |
292 Директива задаёт максимально допустимый размер тела запроса клиента, | 366 |
293 указываемый в строке "Content-Length" в заголовке запроса. | 367 <para> |
368 Задаёт максимально допустимый размер тела запроса клиента, | |
369 указываемый в поле | |
370 <header>Content-Length</header> | |
371 заголовка запроса. | |
294 Если размер больше заданного, то клиенту возвращается ошибка | 372 Если размер больше заданного, то клиенту возвращается ошибка |
295 "Request Entity Too Large" (413). Следует иметь в виду, что | 373 <http-status code="413" text="Request Entity Too Large"/>. |
296 <link url="http://sysoev.ru/web/upload.html">браузеры не умеют | 374 Следует иметь в виду, что |
297 корректно показывать эту ошибку</link>. | 375 <!--link doc="/web/upload.xml"-->браузеры не умеют корректно показывать |
376 эту ошибку<!--/link-->. | |
377 Установка аргумента <argument>размер</argument> в 0 отключает | |
378 проверку размера тела запроса клиента. | |
379 </para> | |
380 | |
381 </directive> | |
382 | |
383 | |
384 <directive name="connection_pool_size"> | |
385 <syntax><argument>размер</argument></syntax> | |
386 <default>256</default> | |
387 <context>http</context> | |
388 <context>server</context> | |
389 | |
390 <para> | |
391 Позволяет производить точную настройку выделений памяти | |
392 под конкретные соединения. | |
393 Эта директива не оказывает существенного влияния на | |
394 производительность и её не следует использовать. | |
298 </para> | 395 </para> |
299 | 396 |
300 </directive> | 397 </directive> |
301 | 398 |
302 | 399 |
303 <directive name="default_type"> | 400 <directive name="default_type"> |
304 <syntax><value>MIME-тип</value></syntax> | 401 <syntax><argument>mime-тип</argument></syntax> |
305 <default>text/plain</default> | 402 <default>text/plain</default> |
306 <context>http, server, location</context> | 403 <context>http</context> |
307 | 404 <context>server</context> |
308 <para> | 405 <context>location</context> |
309 Директива задаёт MIME-тип ответов по умолчанию. | 406 |
407 <para> | |
408 Задаёт MIME-тип ответов по умолчанию. | |
409 См. также директиву <link id="types"/>. | |
310 </para> | 410 </para> |
311 | 411 |
312 </directive> | 412 </directive> |
313 | 413 |
314 | 414 |
315 <directive name="directio"> | 415 <directive name="directio"> |
316 <syntax><value>[размер|off]</value></syntax> | 416 <syntax><argument>размер</argument> | <value>off</value></syntax> |
317 <default>off</default> | 417 <default>off</default> |
318 <context>http, server, location</context> | 418 <context>http</context> |
319 | 419 <context>server</context> |
320 <para> | 420 <context>location</context> |
321 Директива (0.7.7) разрешает использовать флаги | 421 <appeared-in>0.7.7</appeared-in> |
322 O_DIRECT (FreeBSD, Linux), F_NOCACHE (Mac OS X) или функцию directio() (Solaris) | 422 |
423 <para> | |
424 Разрешает использовать флаги | |
425 <c-def>O_DIRECT</c-def> (FreeBSD, Linux), | |
426 <c-def>F_NOCACHE</c-def> (Mac OS X) | |
427 или функцию <c-func>directio</c-func> (Solaris) | |
323 при чтении файлов, размер которых больше либо равен указанному. | 428 при чтении файлов, размер которых больше либо равен указанному. |
324 Директива автоматически запрещает (0.7.15) использование | 429 Директива автоматически запрещает (0.7.15) использование |
325 <link id="sendfile">sendfile'а</link> для данного запроса. | 430 <link id="sendfile"/> |
431 для данного запроса. | |
326 Рекомендуется использовать для больших файлов: | 432 Рекомендуется использовать для больших файлов: |
327 <example> | 433 <example> |
328 directio 4m; | 434 directio 4m; |
329 </example> | 435 </example> |
330 или при использовании <link id="aio"/> в Linux. | 436 или при использовании <link id="aio"/> в Linux. |
331 </para> | 437 </para> |
332 | 438 |
333 </directive> | 439 </directive> |
334 | 440 |
335 | 441 |
336 <directive name="directio_alignment"> | 442 <directive name="directio_alignment"> |
337 <syntax><value>размер</value></syntax> | 443 <syntax><argument>размер</argument></syntax> |
338 <default>512</default> | 444 <default>512</default> |
339 <context>http, server, location</context> | 445 <context>http</context> |
340 | 446 <context>server</context> |
341 <para> | 447 <context>location</context> |
342 Директива (0.8.11) устанавливает выравнивание для | 448 <appeared-in>0.8.11</appeared-in> |
449 | |
450 <para> | |
451 Устанавливает выравнивание для | |
343 <link id="directio"/>. | 452 <link id="directio"/>. |
344 В большинстве случае достаточно выравнивания 512 байт, однако | 453 В большинстве случаев достаточно 512-байтового выравнивания, однако |
345 при использовании XFS под Linux его нужно увеличить до 4K. | 454 при использовании XFS под Linux его нужно увеличить до 4K. |
346 </para> | 455 </para> |
347 | 456 |
348 </directive> | 457 </directive> |
349 | 458 |
350 | 459 |
351 <directive name="error_page"> | 460 <directive name="error_page"> |
352 <syntax><value>код [код ...] [=|=ответ] uri</value> | 461 <syntax> |
462 <argument>код</argument> ... | |
463 [<value>=</value>[<argument>ответ</argument>]] | |
464 <argument>uri</argument> | |
353 </syntax> | 465 </syntax> |
354 <default/> | 466 <default/> |
355 <context>http, server, location, if в location</context> | 467 <context>http</context> |
356 | 468 <context>server</context> |
357 <para> | 469 <context>location</context> |
358 Директива задаёт URI, который будет показываться для указанных ошибок. | 470 <context>if в location</context> |
359 Директивы наследуются с предыдущего уровня при условии, что на данном | 471 |
360 уровне не описаны свои директивы error_page. | 472 <para> |
361 В URI можно использовать переменные. | 473 Задаёт URI, который будет показываться для указанных ошибок. |
362 </para> | 474 Директивы <code>error_page</code> наследуются с предыдущего уровня при условии, |
363 | 475 что на данном уровне не описаны свои директивы |
364 <para> | 476 <code>error_page</code>. |
365 Пример использования: | 477 В значении URI можно использовать переменные. |
366 <example> | 478 </para> |
367 error_page 404 /404.html; | 479 |
368 error_page 502 503 504 /50x.html; | 480 <para> |
369 error_page 403 http://example.com/forbidden.html; | 481 Пример: |
482 <example> | |
483 error_page 404 /404.html; | |
484 error_page 502 503 504 /50x.html; | |
485 error_page 403 http://example.com/forbidden.html; | |
370 </example> | 486 </example> |
371 </para> | 487 </para> |
372 | 488 |
373 <para> | 489 <para> |
374 Кроме того, можно поменять код ответа на другой, например: | 490 Кроме того, можно поменять код ответа на другой, например: |
375 <example> | 491 <example> |
376 error_page 404 =200 /empty.gif; | 492 error_page 404 =200 /empty.gif; |
377 </example> | 493 </example> |
378 </para> | 494 </para> |
379 | 495 |
380 <para> | 496 <para> |
381 Если ошибочный ответ обрабатывается проксированным сервером или | 497 Если ошибочный ответ обрабатывается проксированным сервером или |
382 FastCGI-сервером и этот сервер может вернуть разные коды ответов, | 498 FastCGI-сервером, и этот сервер может вернуть разные коды ответов, |
383 например, 200, 302, 401 или 404, то можно выдавать возвращаемый код: | 499 например, 200, 302, 401 или 404, то можно выдавать возвращаемый им код: |
384 <example> | 500 <example> |
385 error_page 404 = /404.php; | 501 error_page 404 = /404.php; |
386 </example> | 502 </example> |
387 </para> | 503 </para> |
388 | 504 |
389 <para> | 505 <para> |
390 Если при перенаправлении не нужно менять URI, то можно перенаправить | 506 Если при перенаправлении не нужно менять URI, то можно перенаправить |
391 обработку ошибки в именованный location: | 507 обработку ошибки в именованный location: |
392 <example> | 508 <example> |
393 location / { | 509 location / { |
394 error_page 404 = @fallback; | 510 error_page 404 = @fallback; |
395 } | 511 } |
396 | 512 |
397 location @fallback { | 513 location @fallback { |
398 proxy_pass http://backend; | 514 proxy_pass http://backend; |
399 } | 515 } |
400 </example> | 516 </example> |
401 </para> | 517 </para> |
402 | 518 |
403 </directive> | 519 </directive> |
404 | 520 |
405 | 521 |
406 <directive name="if_modified_since"> | 522 <directive name="if_modified_since"> |
407 <syntax><value>[off|exact|before]</value></syntax> | 523 <syntax> |
524 <value>off</value> | | |
525 <value>exact</value> | | |
526 <value>before</value> | |
527 </syntax> | |
408 <default>exact</default> | 528 <default>exact</default> |
409 <context>http, server, location</context> | 529 <context>http</context> |
410 | 530 <context>server</context> |
411 <para> | 531 <context>location</context> |
412 Директива (0.7.24) определяет, как сравнивать время модификации ответа и | 532 <appeared-in>0.7.24</appeared-in> |
413 время в заголовке запроса "If-Modified-Since": | 533 |
414 <list type="bullet"> | 534 <para> |
415 | 535 Определяет, как сравнивать время модификации ответа с |
416 <listitem> | 536 временем в поле |
417 off — не проверять заголовок запроса | 537 <header>If-Modified-Since</header> |
418 "If-Modified-Since" (0.7.34); | 538 заголовка запроса: |
419 </listitem> | 539 |
420 | 540 <list type="tag"> |
421 <listitem> | 541 |
422 exact — точно совпадение; | 542 <tag-name><value>off</value></tag-name> |
423 </listitem> | 543 <tag-desc> |
424 | 544 не проверять поле |
425 <listitem> | 545 <header>If-Modified-Since</header> заголовка запроса (0.7.34); |
426 before — время модификации ответа меньше или равно времени, заданному | 546 </tag-desc> |
427 в заголовке запроса "If-Modified-Since". | 547 |
428 </listitem> | 548 <tag-name><value>exact</value></tag-name> |
549 <tag-desc> | |
550 точное совпадение; | |
551 </tag-desc> | |
552 | |
553 <tag-name><value>before</value></tag-name> | |
554 <tag-desc> | |
555 время модификации ответа меньше или равно времени, заданному в поле | |
556 <header>If-Modified-Since</header> заголовка запроса. | |
557 </tag-desc> | |
429 | 558 |
430 </list> | 559 </list> |
560 </para> | |
561 | |
562 </directive> | |
563 | |
564 | |
565 <directive name="ignore_invalid_headers"> | |
566 <syntax><value>on</value> | <value>off</value></syntax> | |
567 <default>on</default> | |
568 <context>http</context> | |
569 <context>server</context> | |
570 | |
571 <para> | |
572 Если включено, nginx игнорирует поля заголовка с недопустимыми именами. | |
573 Допустимыми считаются имена, состоящие из английских букв, цифр, дефисов | |
574 и возможно знаков подчёркивания (последнее контролируется директивой | |
575 <link id="underscores_in_headers"/>). | |
431 </para> | 576 </para> |
432 | 577 |
433 </directive> | 578 </directive> |
434 | 579 |
435 | 580 |
437 <syntax/> | 582 <syntax/> |
438 <default/> | 583 <default/> |
439 <context>location</context> | 584 <context>location</context> |
440 | 585 |
441 <para> | 586 <para> |
442 Директива указывает, что данный location может использоваться только | 587 Указывает, что location может использоваться только для внутренних запросов. |
443 для внутренних запросов. | 588 Для внешних запросов клиенту будет возвращаться ошибка |
444 Для внешних запросов будет возвращаться ошибка "Not found" (404). | 589 <http-status code="404" text="Not Found"/>. |
445 Внутренними запросами являются | 590 Внутренними запросами являются: |
591 | |
446 <list type="bullet"> | 592 <list type="bullet"> |
447 | 593 |
448 <listitem> | 594 <listitem> |
449 запросы, перенаправленные директивой error_page; | 595 запросы, перенаправленные директивой <link id="error_page"/>; |
450 </listitem> | 596 </listitem> |
451 | 597 |
452 <listitem> | 598 <listitem> |
453 подзапросы, формируемые командой include virtual модуля ngx_http_ssi_module; | 599 подзапросы, формируемые командой |
600 <command>include virtual</command> | |
601 модуля | |
602 <link doc="ngx_http_ssi_module.xml">ngx_http_ssi_module</link>; | |
603 ngx_http_ssi_module; | |
454 </listitem> | 604 </listitem> |
455 | 605 |
456 <listitem> | 606 <listitem> |
457 запросы, изменённые директивой rewrite модуля ngx_http_rewrite_module. | 607 запросы, изменённые директивой |
608 <link doc="ngx_http_rewrite_module.xml" id="rewrite"/>. | |
458 </listitem> | 609 </listitem> |
459 | 610 |
460 </list> | 611 </list> |
461 </para> | 612 </para> |
462 | 613 |
463 <para> | 614 <para> |
464 Пример использования: | 615 Пример: |
465 <example> | 616 <example> |
466 error_page 404 /404.html; | 617 error_page 404 /404.html; |
467 | 618 |
468 location /404.html { | 619 location /404.html { |
469 internal; | 620 internal; |
470 } | 621 } |
471 </example> | 622 </example> |
472 </para> | 623 </para> |
473 | 624 |
474 </directive> | 625 </directive> |
475 | 626 |
476 | 627 |
628 <directive name="keepalive_disable"> | |
629 <syntax><value>none</value> | <argument>браузер</argument> ...</syntax> | |
630 <default>msie6 safari</default> | |
631 <context>http</context> | |
632 <context>server</context> | |
633 <context>location</context> | |
634 | |
635 <para> | |
636 Запрещает keep-alive соединения с некорректно ведущими себя браузерами. | |
637 Аргументы <argument>браузер</argument> указывают, на какие браузеры это | |
638 распространяется. | |
639 Значение <value>msie6</value> запрещает keep-alive соединения | |
640 со старыми версиями MSIE после получения запроса POST. | |
641 Значение <value>safari</value> запрещает keep-alive соединения | |
642 с браузерами Safari. | |
643 Значение <value>none</value> разрешает keep-alive соединения | |
644 со всеми браузерами. | |
645 </para> | |
646 | |
647 </directive> | |
648 | |
649 | |
477 <directive name="keepalive_requests"> | 650 <directive name="keepalive_requests"> |
478 <syntax><value>число</value></syntax> | 651 <syntax><argument>число</argument></syntax> |
479 <default>100</default> | 652 <default>100</default> |
480 <context>http, server, location</context> | 653 <context>http</context> |
481 | 654 <context>server</context> |
482 <para> | 655 <context>location</context> |
483 Директива (0.8.0) задаёт максимальное число запросов, которые можно | 656 <appeared-in>0.8.0</appeared-in> |
657 | |
658 <para> | |
659 Задаёт максимальное число запросов, которые можно | |
484 сделать по одному keep-alive соединению. | 660 сделать по одному keep-alive соединению. |
661 После того, как будет сделано максимальное число запросов, | |
662 соединение закрывается. | |
485 </para> | 663 </para> |
486 | 664 |
487 </directive> | 665 </directive> |
488 | 666 |
489 | 667 |
490 <directive name="keepalive_timeout"> | 668 <directive name="keepalive_timeout"> |
491 <syntax><value>время [время]</value></syntax> | 669 <syntax> |
492 <default>75</default> | 670 <argument>таймаут</argument> |
493 <context>http, server, location</context> | 671 [<argument>заголовок_таймаута</argument>] |
494 | 672 </syntax> |
495 <para> | 673 <default>75s</default> |
496 Директива задаёт таймаут, в течение которого keep-alive соединение | 674 <context>http</context> |
497 с клиентом не будет закрыто со стороны сервера. | 675 <context>server</context> |
498 Второй параметр задаёт значение в строке "Keep-Alive: timeout=время" | 676 <context>location</context> |
499 в заголовке ответа. Параметры могут отличаться друг от друга. | 677 |
500 Строку "Keep-Alive: timeout=время" понимают Mozilla и Konqueror. | 678 <para> |
679 Первый аргумент задаёт таймаут, в течение которого keep-alive | |
680 соединение с клиентом не будет закрыто со стороны сервера. | |
681 Второй необязательный параметр задаёт значение в поле | |
682 <header>Keep-Alive: timeout=<argument>время</argument></header> | |
683 заголовка ответа. | |
684 Два аргумента могут отличаться друг от друга. | |
685 </para> | |
686 | |
687 <para> | |
688 Поле | |
689 <header>Keep-Alive: timeout=<argument>время</argument></header> | |
690 заголовка понимают Mozilla и Konqueror. | |
501 MSIE сам закрывает keep-alive соединение примерно через 60 секунд. | 691 MSIE сам закрывает keep-alive соединение примерно через 60 секунд. |
502 </para> | 692 </para> |
503 | 693 |
504 </directive> | 694 </directive> |
505 | 695 |
506 | 696 |
507 <directive name="large_client_header_buffers"> | 697 <directive name="large_client_header_buffers"> |
508 <syntax><value>число размер</value> | 698 <syntax><argument>число размер</argument></syntax> |
509 </syntax> | 699 <default>4 8k</default> |
510 <default>4 4k/8k</default> | 700 <context>http</context> |
511 <context>http, server</context> | 701 <context>server</context> |
512 | 702 |
513 <para> | 703 <para> |
514 Директива задаёт максимальное число и размер буферов для чтения | 704 Задаёт максимальное <argument>число</argument> и <argument>размер</argument> |
515 большого заголовка запроса клиента. | 705 буферов для чтения большого заголовка запроса клиента. |
516 Строка запроса должна быть не больше размера одного буфера, иначе клиенту | 706 Строка запроса не должна превышать размера одного буфера, иначе клиенту |
517 возвращается ошибка "Request URI too large" (414). | 707 возвращается ошибка |
518 Длинная строка заголовка запроса также должна быть не больше размера одного | 708 <http-status code="414" text="Request-URI Too Large"/>. |
519 буфера, иначе клиенту возвращается ошибка "Bad request" (400). | 709 Поле заголовка запроса также не должно превышать размера одного буфера, |
710 иначе клиенту возвращается ошибка | |
711 <http-status code="400" text="Bad Request"/>. | |
520 Буферы выделяются только по мере необходимости. | 712 Буферы выделяются только по мере необходимости. |
521 По умолчанию размер одного буфера равен размеру страницы, в зависимости | 713 По умолчанию размер одного буфера равен 8K байт. |
522 от платформы это или 4K, или 8K. | |
523 Если по окончании обработки запроса соединение переходит в состояние | 714 Если по окончании обработки запроса соединение переходит в состояние |
524 keep-alive, то эти буферы освобождаются. | 715 keep-alive, эти буферы освобождаются. |
525 </para> | 716 </para> |
526 | 717 |
527 </directive> | 718 </directive> |
528 | 719 |
529 | 720 |
530 <directive name="limit_except"> | 721 <directive name="limit_except"> |
531 <syntax block="yes"><value>методы</value></syntax> | 722 <syntax block="yes"><argument>метод</argument> ...</syntax> |
532 <default/> | 723 <default/> |
533 <context>location</context> | 724 <context>location</context> |
534 | 725 |
535 <para> | 726 <para> |
536 Директива ограничивает HTTP-методы, доступные внутри location. | 727 Ограничивает HTTP-методы, доступные внутри location. |
537 Метод GET также включает в себя метод HEAD. | 728 Аргумент <argument>метод</argument> может быть одним из |
538 Для ограничения могут использоваться директивы модулей | 729 <value>GET</value>, |
730 <value>HEAD</value>, | |
731 <value>POST</value>, | |
732 <value>PUT</value>, | |
733 <value>DELETE</value>, | |
734 <value>MKCOL</value>, | |
735 <value>COPY</value>, | |
736 <value>MOVE</value>, | |
737 <value>OPTIONS</value>, | |
738 <value>PROPFIND</value>, | |
739 <value>PROPPATCH</value>, | |
740 <value>LOCK</value>, | |
741 <value>UNLOCK</value> | |
742 или | |
743 <value>PATCH</value>. | |
744 Если разрешён метод <value>GET</value>, то метод | |
745 <value>HEAD</value> также будет разрешён. | |
746 Доступ к остальным методам может быть ограничен при помощи директив модулей | |
539 <link doc="ngx_http_access_module.xml">ngx_http_access_module</link> | 747 <link doc="ngx_http_access_module.xml">ngx_http_access_module</link> |
540 и <link doc="ngx_http_auth_basic_module.xml">ngx_http_auth_basic_module</link>: | 748 и |
541 <example> | 749 <link doc="ngx_http_auth_basic_module.xml">ngx_http_auth_basic_module</link>: |
542 limit_except GET { | 750 <example> |
543 allow 192.168.1.0/32; | 751 limit_except GET { |
544 deny all; | 752 allow 192.168.1.0/32; |
545 } | 753 deny all; |
546 </example> | 754 } |
547 Обратите внимание, что данное ограничение будет выполняться для всех методов, | 755 </example> |
548 <value>кроме</value> методов GET и HEAD. | 756 Обратите внимание, что данное ограничение действует для всех методов, |
757 <emphasis>кроме</emphasis> GET и HEAD. | |
549 </para> | 758 </para> |
550 | 759 |
551 </directive> | 760 </directive> |
552 | 761 |
553 | 762 |
554 <directive name="limit_rate"> | 763 <directive name="limit_rate"> |
555 | 764 <syntax><argument>скорость</argument></syntax> |
556 <syntax><value>скорость</value></syntax> | 765 <default>0</default> |
557 <default/> | 766 <context>http</context> |
558 <context>http, server, location, if в location</context> | 767 <context>server</context> |
559 | 768 <context>location</context> |
560 <para> | 769 <context>if в location</context> |
561 Директива задаёт скорость передачи ответа клиенту. | 770 |
771 <para> | |
772 Ограничивает скорость передачи ответа клиенту. | |
562 Скорость задаётся в байтах в секунду. | 773 Скорость задаётся в байтах в секунду. |
563 | 774 Значение 0 (установка по умолчанию) отключает ограничение скорости. |
564 Ограничение работает только для одного соединения, то есть, | 775 <!-- |
565 если клиент откроет 2 соединения, то суммарная скорость будет в 2 раза | 776 Чем меньше скорость, тем более аккуратным будет ограничение. |
566 выше ограниченной. | 777 --> |
567 </para> | 778 Ограничение срабатывает только для одного соединения, то есть если |
568 | 779 клиент откроет 2 соединения, то суммарная скорость будет в 2 раза |
569 <para> | 780 выше заданного ограничения. |
570 Если необходимо ограничить скорость для части клиентов на уровне сервера, | 781 </para> |
571 то директива limit_rate для этого не подходит. Вместо этого следует | 782 |
572 задать нужную скорость переменной $limit_rate: | 783 <para> |
784 Если необходимо ограничить скорость для части клиентов на уровне | |
785 <link id="server">сервера</link>, то директива <code>limit_rate</code> | |
786 для этого не подходит. | |
787 Вместо этого следует задать желаемое ограничение скорости в переменной | |
788 <var>$limit_rate</var>: | |
573 <example> | 789 <example> |
574 server { | 790 server { |
575 | 791 |
576 if ($slow) { | 792 if ($slow) { |
577 set $limit_rate 4k; | 793 set $limit_rate 4k; |
578 } | 794 } |
579 | 795 |
580 ... | 796 ... |
581 } | 797 } |
582 </example> | 798 </example> |
584 | 800 |
585 </directive> | 801 </directive> |
586 | 802 |
587 | 803 |
588 <directive name="limit_rate_after"> | 804 <directive name="limit_rate_after"> |
589 <syntax><value>размер</value></syntax> | 805 <syntax><argument>размер</argument></syntax> |
590 <default/> | 806 <default>0</default> |
591 <context>http, server, location, if в location</context> | 807 <context>http</context> |
592 | 808 <context>server</context> |
593 <para> | 809 <context>location</context> |
594 Директива (0.8.0) задаёт объём данных, после передачи которого | 810 <context>if в location</context> |
595 начинает ограничиваться скорость передачи ответа клиенту, например: | 811 <appeared-in>0.8.0</appeared-in> |
812 | |
813 <para> | |
814 Задаёт начальный объём данных, после передачи которого начинает | |
815 ограничиваться скорость передачи ответа клиенту. | |
816 </para> | |
817 | |
818 <para> | |
819 Пример: | |
596 <example> | 820 <example> |
597 location /flv/ { | 821 location /flv/ { |
598 flv; | 822 flv; |
599 limit_rate_after 500k; | 823 limit_rate_after 500k; |
600 limit_rate 50k; | 824 limit_rate 50k; |
601 } | 825 } |
602 </example> | 826 </example> |
827 </para> | |
828 | |
829 </directive> | |
830 | |
831 | |
832 <directive name="lingering_close"> | |
833 <syntax><value>off</value> | <value>on</value> | <value>always</value></syntax> | |
834 <default>on</default> | |
835 <context>http</context> | |
836 <context>server</context> | |
837 <context>location</context> | |
838 <appeared-in>1.1.0</appeared-in> | |
839 <appeared-in>1.0.6</appeared-in> | |
840 | |
841 <para> | |
842 Управляет закрытием соединений с клиентами. | |
843 </para> | |
844 | |
845 <para> | |
846 Со значение по умолчанию “<value>on</value>” nginx будет | |
847 <link id="lingering_timeout">ждать</link> и | |
848 <link id="lingering_time">обрабатывать</link> дополнительные данные, | |
849 поступающие от клиента, перед полным закрытием соединения, но только | |
850 если эвристика указывает на то, что клиент может ещё послать данные. | |
851 </para> | |
852 | |
853 <para> | |
854 Со значением “<value>always</value>” nginx всегда будет | |
855 ждать и обрабатывать дополнительные данные, поступающие от клиента. | |
856 </para> | |
857 | |
858 <para> | |
859 Со значением “<value>off</value>” nginx не будет ждать поступления | |
860 дополнительных данных и сразу же закроет соединение. | |
861 Это нарушает протокол, поэтому не следует это использовать без нужды. | |
862 </para> | |
863 | |
864 </directive> | |
865 | |
866 | |
867 <directive name="lingering_time"> | |
868 <syntax><argument>время</argument></syntax> | |
869 <default>30s</default> | |
870 <context>http</context> | |
871 <context>server</context> | |
872 <context>location</context> | |
873 | |
874 <para> | |
875 Если действует <link id="lingering_close"/>, | |
876 эта директива задаёт максимальное время, в течение которого nginx | |
877 будет обрабатывать (читать и игнорировать) дополнительные данные, | |
878 поступающие от клиента. | |
879 По прошествии этого времени соединение будет закрыто, даже если | |
880 будут ещё данные. | |
881 </para> | |
882 | |
883 </directive> | |
884 | |
885 | |
886 <directive name="lingering_timeout"> | |
887 <syntax><argument>время</argument></syntax> | |
888 <default>5s</default> | |
889 <context>http</context> | |
890 <context>server</context> | |
891 <context>location</context> | |
892 | |
893 <para> | |
894 Если действует <link id="lingering_close"/>, эта директива задаёт | |
895 максимальное время ожидания поступления дополнительных данных от клиента. | |
896 Если в течение этого времени данные не были получены, соединение закрывается. | |
897 Иначе данные читаются и игнорируются, затем nginx снова ждёт поступления данных. | |
898 Цикл “ждать-читать-игнорировать” повторяется, но не дольше чем задано | |
899 директивой <link id="lingering_time"/>. | |
603 </para> | 900 </para> |
604 | 901 |
605 </directive> | 902 </directive> |
606 | 903 |
607 | 904 |
608 <directive name="listen"> | 905 <directive name="listen"> |
609 <syntax><value>адрес:порт | 906 <syntax> |
610 [default|default_server| | 907 <argument>адрес</argument>[:<argument>порт</argument>] |
611 [backlog=число | | 908 [<parameter>default_server</parameter>] |
612 rcvbuf=размер | | 909 [<parameter>setfib</parameter>=<argument>число</argument>] |
613 sndbuf=размер | | 910 [<parameter>backlog</parameter>=<argument>число</argument>] |
614 accept_filter=фильтр | | 911 [<parameter>rcvbuf</parameter>=<argument>размер</argument>] |
615 deferred | | 912 [<parameter>sndbuf</parameter>=<argument>размер</argument>] |
616 bind | | 913 [<parameter>accept_filter</parameter>=<argument>фильтр</argument>] |
617 ipv6only=[on|off] | | 914 [<parameter>deferred</parameter>] |
618 ssl]] | 915 [<parameter>bind</parameter>] |
619 </value></syntax> | 916 [<parameter>ipv6only</parameter>=<value>on</value>|<value>off</value>] |
917 [<parameter>ssl</parameter>] | |
918 [<parameter>so_keepalive</parameter>=<value>on</value>|<value>off</value>|[<argument>keepidle</argument>]:[<argument>keepintvl</argument>]:[<argument>keepcnt</argument>]]</syntax> | |
919 <syntax> | |
920 <argument>порт</argument> | |
921 [<parameter>default_server</parameter>] | |
922 [<parameter>setfib</parameter>=<argument>число</argument>] | |
923 [<parameter>backlog</parameter>=<argument>число</argument>] | |
924 [<parameter>rcvbuf</parameter>=<argument>размер</argument>] | |
925 [<parameter>sndbuf</parameter>=<argument>размер</argument>] | |
926 [<parameter>accept_filter</parameter>=<argument>фильтр</argument>] | |
927 [<parameter>deferred</parameter>] | |
928 [<parameter>bind</parameter>] | |
929 [<parameter>ipv6only</parameter>=<value>on</value>|<value>off</value>] | |
930 [<parameter>ssl</parameter>] | |
931 [<parameter>so_keepalive</parameter>=<value>on</value>|<value>off</value>|[<argument>keepidle</argument>]:[<argument>keepintvl</argument>]:[<argument>keepcnt</argument>]]</syntax> | |
932 <syntax> | |
933 <value>unix:</value><argument>путь</argument> | |
934 [<parameter>default_server</parameter>] | |
935 [<parameter>backlog</parameter>=<argument>число</argument>] | |
936 [<parameter>rcvbuf</parameter>=<argument>размер</argument>] | |
937 [<parameter>sndbuf</parameter>=<argument>размер</argument>] | |
938 [<parameter>accept_filter</parameter>=<argument>фильтр</argument>] | |
939 [<parameter>deferred</parameter>] | |
940 [<parameter>bind</parameter>] | |
941 [<parameter>ssl</parameter>] | |
942 [<parameter>so_keepalive</parameter>=<value>on</value>|<value>off</value>|[<argument>keepidle</argument>]:[<argument>keepintvl</argument>]:[<argument>keepcnt</argument>]]</syntax> | |
620 <default>*:80 | *:8000</default> | 943 <default>*:80 | *:8000</default> |
621 <context>server</context> | 944 <context>server</context> |
622 | 945 |
623 <para> | 946 <para> |
624 Директива задаёт адрес и порт, на которых сервер принимает запросы. | 947 Задаёт <argument>адрес</argument> и <argument>порт</argument> для IP |
625 Можно указать только адрес или только порт, кроме того, адрес может | 948 или <argument>путь</argument> для UNIX-сокета, |
626 быть именем сервера, например: | 949 на которых сервер будет принимать запросы. |
627 <example> | 950 Можно указать только <argument>адрес</argument> |
628 listen 127.0.0.1:8000; | 951 или только <argument>порт</argument>. |
629 listen 127.0.0.1; | 952 Кроме того, <argument>адрес</argument> может быть именем хоста, например: |
630 listen 8000; | 953 <example> |
631 listen *:8000; | 954 listen 127.0.0.1:8000; |
632 listen localhost:8000; | 955 listen 127.0.0.1; |
633 </example> | 956 listen 8000; |
634 адреса IPv6 (0.7.36) задаются в квадратных скобках: | 957 listen *:8000; |
635 <example> | 958 listen localhost:8000; |
636 listen [::]:8000; | 959 </example> |
637 listen [fe80::1]; | 960 IPv6-адреса (0.7.36) задаются в квадратных скобках: |
638 </example> | 961 <example> |
639 </para> | 962 listen [::]:8000; |
640 | 963 listen [fe80::1]; |
641 <para> | 964 </example> |
642 Если указан только адрес, то используется порт 80. | 965 UNIX-сокеты (0.8.21) задаются при помощи префикса “<code>unix:</code>”: |
643 </para> | 966 <example> |
644 | 967 listen unix:/var/run/nginx.sock; |
645 <para> | 968 </example> |
646 Если директива не указана, то используется порт *:80, если nginx работает | 969 </para> |
647 с правами пользователя root, или порт *:8000. | 970 |
648 </para> | 971 <para> |
649 | 972 Если указан только <argument>адрес</argument>, то используется порт 80. |
650 <para> | 973 </para> |
651 Если у директивы есть параметр default, то сервер, в котором описана | 974 |
652 эта директива, будет сервером по умолчанию для указанной пары адрес:порт. | 975 <para> |
653 Если же директив с параметром default нет, то сервером по умолчанию | 976 Если директива не указана, то используется либо <code>*:80</code> |
654 будет первый сервер, в котором описана пара адрес:порт. | 977 (если nginx работает с привилегиями суперпользователя), |
655 Начиная с версии 0.8.21, можно использовать параметр default_server. | 978 либо <code>*:8000</code>. |
656 </para> | 979 </para> |
657 | 980 |
658 <para> | 981 <para> |
659 В директиве listen с параметром default можно также указать несколько | 982 Если у директивы есть параметр <parameter>default_server</parameter>, то сервер, |
660 параметров, специфичных для системных вызовов listen(2) и bind(2). | 983 в котором описана эта директива, будет сервером по умолчанию для указанной пары |
661 Начиная с версии 0.8.21, эти параметры можно задать в любой директиве | 984 <argument>адрес</argument>:<argument>порт</argument>. |
662 listen, но только один раз для указанной пары адрес:порт. | 985 Если же директив с параметром <parameter>default_server</parameter> нет, то |
663 <list type="bullet"> | 986 сервером по умолчанию будет первый сервер, в котором описана пара |
664 | 987 <argument>адрес</argument>:<argument>порт</argument>. |
665 <listitem> | 988 адрес:порт. |
666 backlog=число — задаёт параметр backlog в вызове listen(2). | 989 <note> |
667 По умолчанию backlog равен -1 для FreeBSD и 511 для всех остальных | 990 До версии 0.8.21 этот параметр назывался просто |
668 платформ. | 991 <parameter>default</parameter>. |
669 </listitem> | 992 </note> |
670 | 993 </para> |
671 <listitem> | 994 |
672 rcvbuf=размер — задаёт параметр SO_RCVBUF для слушающего сокета. | 995 <para> |
673 </listitem> | 996 В директиве <code>listen</code> можно также указать несколько |
674 | 997 дополнительных параметров, специфичных для системных вызовов |
675 <listitem> | 998 <c-func>listen</c-func> и <c-func>bind</c-func>. |
676 sndbuf=размер — задаёт параметр SO_SNDBUF для слушающего сокета. | 999 Эти параметры можно задать в любой директиве <code>listen</code>, |
677 </listitem> | 1000 но только один раз для указанной пары |
678 | 1001 <argument>адрес</argument>:<argument>порт</argument>. |
679 <listitem> | 1002 <note> |
680 accept_filter=фильтр — задаёт название accept-фильтра. | 1003 До версии 0.8.21 их можно было указывать лишь в директиве |
681 Работает только на FreeBSD, можно использовать два фильтра — dataready | 1004 <code>listen</code> с параметром <parameter>default</parameter>. |
682 и httpready. | 1005 </note> |
683 По сигналу -HUP accept-фильтр можно менять только в последних | 1006 <list type="tag"> |
684 версиях FreeBSD, начиная с 6.0, 5.4-STABLE и 4.11-STABLE. | 1007 |
685 </listitem> | 1008 <tag-name> |
686 | 1009 <parameter>setfib</parameter>=<argument>число</argument> |
687 <listitem> | 1010 </tag-name> |
688 deferred — указывает использовать отложенный accept(2) на Linux | 1011 <tag-desc> |
689 с помощью опции TCP_DEFER_ACCEPT. | 1012 этот параметр (0.8.44) задаёт для слушающего сокета соответствующую |
690 </listitem> | 1013 таблицу маршрутизации (FIB). |
691 | 1014 В настоящий момент это работает только на FreeBSD. |
692 <listitem> | 1015 </tag-desc> |
693 bind — указывает, что для данной пары адрес:порт нужно делать bind(2) | 1016 |
694 отдельно. | 1017 <tag-name> |
695 Дело в том, что если описаны несколько директив listen с одинаковым портом, | 1018 <parameter>backlog</parameter>=<argument>число</argument> |
696 но разными адресами и одна из директив listen слушает на всех адресах | 1019 </tag-name> |
697 для данного порта (*:порт), то nginx сделает bind(2) только на *:порт. | 1020 <tag-desc> |
698 Необходимо учитывать, что в этом случае для определения адреса, на которой | 1021 задаёт параметр <parameter>backlog</parameter> в вызове |
699 пришло соединение, делается системный вызов getsockname(). | 1022 <c-func>listen</c-func>. |
700 Если же используются параметры backlog, rcvbuf, sndbuf, accept_filter | 1023 По умолчанию <parameter>backlog</parameter> равен -1 для FreeBSD |
701 или deferred, то для данной пары адрес:порт bind(2) всегда делается отдельно. | 1024 и 511 для других платформ. |
702 </listitem> | 1025 </tag-desc> |
703 | 1026 |
704 <listitem> | 1027 <tag-name> |
705 ipv6only — параметр (0.7.42) задаёт значение параметра IPV6_V6ONLY | 1028 <parameter>rcvbuf</parameter>=<argument>размер</argument> |
1029 </tag-name> | |
1030 <tag-desc> | |
1031 задаёт параметр <c-def>SO_RCVBUF</c-def> для слушающего сокета | |
1032 </tag-desc> | |
1033 | |
1034 <tag-name> | |
1035 <parameter>sndbuf</parameter>=<argument>размер</argument> | |
1036 </tag-name> | |
1037 <tag-desc> | |
1038 задаёт параметр <c-def>SO_SNDBUF</c-def> для слушающего сокета | |
1039 </tag-desc> | |
1040 | |
1041 <tag-name> | |
1042 <parameter>accept_filter</parameter>=<argument>фильтр</argument> | |
1043 </tag-name> | |
1044 <tag-desc> | |
1045 задаёт название accept-фильтра. | |
1046 Работает только на FreeBSD, можно использовать два фильтра — | |
1047 <value>dataready</value> и <value>httpready</value>. | |
1048 По сигналу <c-def>SIGHUP</c-def> accept-фильтр можно менять только в | |
1049 последних версиях FreeBSD, начиная с 6.0, 5.4-STABLE и 4.11-STABLE. | |
1050 </tag-desc> | |
1051 | |
1052 <tag-name> | |
1053 <parameter>deferred</parameter> | |
1054 </tag-name> | |
1055 <tag-desc> | |
1056 указывает использовать отложенный <c-func>accept</c-func> на Linux | |
1057 с помощью опции <c-def>TCP_DEFER_ACCEPT</c-def>. | |
1058 </tag-desc> | |
1059 | |
1060 <tag-name> | |
1061 <parameter>bind</parameter> | |
1062 </tag-name> | |
1063 <tag-desc> | |
1064 указывает, что для данной пары | |
1065 <argument>адрес</argument>:<argument>порт</argument> нужно делать | |
1066 <c-func>bind</c-func> отдельно. | |
1067 Дело в том, что если описаны несколько директив <code>listen</code> | |
1068 с одинаковым портом, но разными адресами и одна из директив | |
1069 <code>listen</code> слушает на всех адресах для данного порта | |
1070 (<code>*</code>:<argument>порт</argument>, то nginx сделает | |
1071 <c-func>bind</c-func> только на <code>*</code>:<argument>порт</argument>. | |
1072 Необходимо заметить, что в этом случае для определения адреса, на которой | |
1073 пришло соединение, делается системный вызов <c-func>getsockname</c-func>. | |
1074 Если же используются параметры <parameter>backlog</parameter>, | |
1075 <parameter>rcvbuf</parameter>, <parameter>sndbuf</parameter>, | |
1076 <parameter>accept_filter</parameter>, <parameter>deferred</parameter> | |
1077 или <parameter>so_keepalive</parameter>, то для данной пары | |
1078 <argument>адрес</argument>:<argument>порт</argument> всегда делается | |
1079 отдельный вызов <c-func>bind</c-func>. | |
1080 </tag-desc> | |
1081 | |
1082 <tag-name> | |
1083 <parameter>ipv6only</parameter>=<value>on</value>|<value>off</value> | |
1084 </tag-name> | |
1085 <tag-desc> | |
1086 параметр (0.7.42) задаёт значение параметра <c-def>IPV6_V6ONLY</c-def> | |
706 для слушающего сокета. | 1087 для слушающего сокета. |
707 Установить этот параметр можно только один раз на старте. | 1088 Установить этот параметр можно только один раз на старте. |
708 </listitem> | 1089 </tag-desc> |
709 | 1090 |
710 <listitem> | 1091 <tag-name> |
711 ssl — параметр (0.7.14) не имеет отношения к системным вызовам | 1092 <parameter>ssl</parameter> |
712 listen(2) и bind(2), а позволяет указать, что все соединения, | 1093 </tag-name> |
713 принимаемые на этом порту, должны работать в режиме SSL. | 1094 <tag-desc> |
1095 этот параметр (0.7.14) не имеет отношения к системным вызовам | |
1096 <c-func>listen</c-func> и <c-func>bind</c-func>, а позволяет указать, | |
1097 что все соединения, принимаемые на этом порту, должны работать | |
1098 в режиме SSL. | |
714 Это позволяет задать компактную конфигурацию для сервера, | 1099 Это позволяет задать компактную конфигурацию для сервера, |
715 работающего сразу в двух режимах — HTTP и HTTPS. | 1100 работающего сразу в двух режимах — HTTP и HTTPS. |
716 <example> | 1101 <example> |
717 listen 80; | 1102 listen 80; |
718 listen 443 default ssl; | 1103 listen 443 default ssl; |
719 </example> | 1104 </example> |
720 </listitem> | 1105 </tag-desc> |
1106 | |
1107 <tag-name> | |
1108 <parameter>so_keepalive</parameter>=<value>on</value>|<value>off</value>|[<argument>keepidle</argument>]:[<argument>keepintvl</argument>]:[<argument>keepcnt</argument>] | |
1109 </tag-name> | |
1110 <tag-desc> | |
1111 этот параметр (1.1.11) конфигурирует для слушающего сокета | |
1112 поведение “TCP keepalive”. | |
1113 Если этот параметр опущен, то для сокета будут действовать | |
1114 стандартные системные настройки. | |
1115 Если он установлен в значение “<value>on</value>”, то для сокета | |
1116 включается опция <c-def>SO_KEEPALIVE</c-def>. | |
1117 Если он установлен в значение “<value>off</value>”, то для сокета | |
1118 опция <c-def>SO_KEEPALIVE</c-def> выключается. | |
1119 Некоторые операционные системы поддерживают настройку параметров | |
1120 “TCP keepalive” на уровне сокета посредством опций | |
1121 <c-def>TCP_KEEPIDLE</c-def>, <c-def>TCP_KEEPINTVL</c-def> и | |
1122 <c-def>TCP_KEEPCNT</c-def>. | |
1123 На таких системах (в настоящий момент это Linux 2.4+ и NetBSD 5+) | |
1124 их можно сконфигурировать с помощью аргументов <argument>keepidle</argument>, | |
1125 <argument>keepintvl</argument> и <argument>keepcnt</argument>. | |
1126 Один или два аргумента могут быть опущены, в таком случае для | |
1127 соответствующей опции сокета будут действовать стандартные | |
1128 системные настройки. | |
1129 Например, | |
1130 <example>so_keepalive=30m::10</example> | |
1131 установит таймаут бездействия (<c-def>TCP_KEEPIDLE</c-def>) в 30 минут, | |
1132 для интервала проб (<c-def>TCP_KEEPINTVL</c-def>) будет действовать | |
1133 стандартная системная настройка, а счётчик проб (<c-def>TCP_KEEPCNT</c-def>) | |
1134 будет равен 10. | |
1135 </tag-desc> | |
721 | 1136 |
722 </list> | 1137 </list> |
723 </para> | 1138 </para> |
724 | 1139 |
725 <para> | 1140 <para> |
726 Пример использования параметров: | 1141 Пример: |
727 <example> | 1142 <example> |
728 listen 127.0.0.1 default accept_filter=dataready backlog=1024; | 1143 listen 127.0.0.1 default accept_filter=dataready backlog=1024; |
729 </example> | 1144 </example> |
730 </para> | 1145 </para> |
731 | 1146 |
732 </directive> | 1147 </directive> |
733 | 1148 |
734 | 1149 |
735 <directive name="location"> | 1150 <directive name="location"> |
736 <syntax block="yes">[<value>=|~|~*|^~|@</value>] <value>/uri/</value> | 1151 <syntax block="yes">[ |
1152 <value>=</value> | | |
1153 <value>~</value> | | |
1154 <value>~*</value> | | |
1155 <value>^~</value> | |
1156 ] <argument>uri</argument> | |
737 </syntax> | 1157 </syntax> |
1158 <syntax block="yes"><value>@</value><argument>имя</argument></syntax> | |
738 <default/> | 1159 <default/> |
739 <context>server</context> | 1160 <context>server</context> |
740 | 1161 <context>location</context> |
741 <para> | 1162 |
742 Директива устанавливает конфигурацию в зависимости от URI запроса. | 1163 <para> |
743 location можно задать обычной строкой или регулярным выражением. | 1164 Устанавливает конфигурацию в зависимости от URI запроса. |
744 Регулярные выражения задаются префиксом "~*" — без учёта регистра | 1165 location можно задать префиксной строкой или регулярным выражением. |
745 символов, и "~" — с учётом. | 1166 Регулярные выражения задаются либо с префиксом “<value>~*</value>” |
746 Для определения соответствия location'а и запроса | 1167 (для поиска совпадения без учёта регистра символов), |
747 сначала проверяются location'ы, заданные обычными строками. | 1168 либо с префиксом “<value>~</value>” (с учётом регистра). |
1169 Чтобы найти location, соответствующий запросу, вначале проверяются | |
1170 location'ы, заданные префиксными строками (префиксные location'ы). | |
748 Среди них ищется максимальное совпадение. | 1171 Среди них ищется максимальное совпадение. |
749 Затем проверяются регулярные выражения. | 1172 Затем проверяются регулярные выражения, в порядке их следования |
750 В отличие от обычных строк, они не сортируются, а проверяются в порядке | 1173 в конфигурационном файле. |
751 их следования в конфигурационном файле. | 1174 Проверка регулярных выражений прекращается после первого же совпадения, |
752 Проверка регулярных выражений прекращается после первого же совпадения. | 1175 и используется соответствующая конфигурация. |
753 Если совпадение с регулярным выражением не найдено, то используется | 1176 Если совпадение с регулярным выражением не найдено, то используется |
754 конфигурация максимально совпавшего location'а. | 1177 конфигурация максимально совпавшего префиксного location'а. |
755 </para> | 1178 </para> |
756 | 1179 |
757 <para> | 1180 <para> |
758 Для операционных систем, не чувствительных к регистру символов, таких | 1181 location'ы могут быть вложенными, с некоторыми исключениями, |
759 как Mac OS X и Cygwin, проверка обычных строк делается без учёта | 1182 о которых говорится ниже. |
760 регистра (0.7.7). | 1183 </para> |
1184 | |
1185 <para> | |
1186 Для операционных систем, нечувствительных к регистру символов, таких | |
1187 как Mac OS X и Cygwin, сравнение с префиксными строками производится | |
1188 без учёта регистра (0.7.7). | |
761 Однако, сравнение ограничено только однобайтными locale'ями. | 1189 Однако, сравнение ограничено только однобайтными locale'ями. |
762 </para> | 1190 </para> |
763 | 1191 |
764 <para> | 1192 <para> |
765 Регулярное выражение может содержать выделения (0.7.40), которые | 1193 Регулярные выражения могут содержать выделения (0.7.40), которые могут |
766 могут затем использоваться в других директивах. | 1194 затем использоваться в других директивах. |
767 </para> | 1195 </para> |
768 | 1196 |
769 <para> | 1197 <para> |
770 Если нужно запретить проверку регулярных выражений после проверки | 1198 Если у максимального совпавшего префиксного location'а указан префикс |
771 обычных строк, то это можно сделать с помощью префикса "^~". | 1199 “<value>^~</value>”, то регулярные выражения не проверяются. |
772 Если у максимально совпавшего location'а есть этот префикс, то | 1200 </para> |
773 регулярные выражения не проверяются. | 1201 |
774 </para> | 1202 <para> |
775 | 1203 Кроме того, с помощью префикса “<value>=</value>” можно задать точное |
776 <para> | 1204 совпадение URI и location. |
777 Кроме того, с помощью префикса "=" можно задать точное совпадение | 1205 При точном совпадении поиск сразу же прекращается. |
778 URI и location. При совпадении поиск сразу же прекращается, так как | 1206 Например, если запрос “<code>/</code>” случается часто, то |
779 дальше искать не имеет смысла. Например, если запрос "/" очень частый, | 1207 указав “<code>location = /</code>”, можно ускорить обработку |
780 то указав "location = /", можно ускорить обработку этого запроса, | 1208 этих запросов, так как поиск прекратится после первого же сравнения. |
781 так как поиск location прекратится после первого же сравнения. | 1209 Очевидно, что такой location не может иметь вложенные location'ы. |
782 </para> | 1210 </para> |
783 | 1211 |
784 <para> | 1212 <para> |
785 В версиях с 0.7.1 по 0.8.41, если запрос точно совпал с обычным location'ом | 1213 <note> |
786 без префиксов "=" и "^~", то поиск тоже сразу же прекращается и | 1214 В версиях с 0.7.1 по 0.8.41, если запрос точно совпал с префиксным |
787 регулярные выражения также не проверяются. | 1215 location'ом без префиксов “<value>=</value>” и “<value>^~</value>”, |
1216 то поиск тоже сразу же прекращается и регулярные выражения также | |
1217 не проверяются. | |
1218 </note> | |
788 </para> | 1219 </para> |
789 | 1220 |
790 <para> | 1221 <para> |
791 Проиллюстрируем вышесказанное примером: | 1222 Проиллюстрируем вышесказанное примером: |
792 <example> | 1223 <example> |
793 location = / { | 1224 location = / { |
794 [ конфигурация A ] | 1225 [ конфигурация А ] |
795 } | 1226 } |
796 | 1227 |
797 location / { | 1228 location / { |
798 [ конфигурация B ] | 1229 [ конфигурация Б ] |
799 } | 1230 } |
800 | 1231 |
801 location ^~ /images/ { | 1232 location ^~ /images/ { |
802 [ конфигурация C ] | 1233 [ конфигурация В ] |
803 } | 1234 } |
804 | 1235 |
805 location ~* \.(gif|jpg|jpeg)$ { | 1236 location ~* \.(gif|jpg|jpeg)$ { |
806 [ конфигурация D ] | 1237 [ конфигурация Г ] |
807 } | 1238 } |
808 </example> | 1239 </example> |
809 Для запроса "/" будет выбрана конфигурация A, | 1240 Для запроса “<code>/</code>” будет выбрана конфигурация А, |
810 для запроса "/documents/document.html" — конфигурация B, | 1241 для запроса “<code>/documents/document.html</code>” — конфигурация Б, |
811 для запроса "/images/1.gif" — конфигурация C, | 1242 для запроса “<code>/images/1.gif</code>” — конфигурация В, |
812 для запроса "/documents/1.jpg" — конфигурация D. | 1243 а для запроса “<code>/documents/1.jpg</code>” — конфигурация Г. |
813 </para> | 1244 </para> |
814 | 1245 |
815 <para> | 1246 <para> |
816 Префикс "@" задаёт именованный location. Такой location не используется | 1247 Префикс “<value>@</value>” задаёт именованный location. |
817 при обычной обработке запросов, а предназначен только для перенаправления | 1248 Такой location не используется при обычной обработке запросов, а |
818 в него запросов. | 1249 предназначен только для перенаправления в него запросов. |
819 </para> | 1250 Такие location'ы не могут быть вложенными и не могут содержать |
1251 вложенные location'ы. | |
1252 </para> | |
1253 | |
1254 <!-- | |
1255 <migration from="Apache" directive="Location" /> | |
1256 --> | |
820 | 1257 |
821 </directive> | 1258 </directive> |
822 | 1259 |
823 | 1260 |
824 <directive name="log_not_found"> | 1261 <directive name="log_not_found"> |
825 <syntax><value>[on|off]</value></syntax> | 1262 <syntax><value>on</value> | <value>off</value></syntax> |
826 <default>on</default> | 1263 <default>on</default> |
827 <context>http, server, location</context> | 1264 <context>http</context> |
828 | 1265 <context>server</context> |
829 <para> | 1266 <context>location</context> |
830 Директива разрешает или запрещает записывать в error_log | 1267 |
1268 <para> | |
1269 Разрешает или запрещает записывать в | |
1270 <link doc="../ngx_core_module.xml" id="error_log"/> | |
831 ошибки о том, что файл не найден. | 1271 ошибки о том, что файл не найден. |
832 </para> | 1272 </para> |
833 | 1273 |
834 </directive> | 1274 </directive> |
835 | 1275 |
836 | 1276 |
837 <directive name="log_subrequest"> | 1277 <directive name="log_subrequest"> |
838 <syntax><value>[on|off]</value></syntax> | 1278 <syntax><value>on</value> | <value>off</value></syntax> |
839 <default>off</default> | 1279 <default>off</default> |
840 <context>http, server, location</context> | 1280 <context>http</context> |
841 | 1281 <context>server</context> |
842 <para> | 1282 <context>location</context> |
843 Директива разрешает или запрещает записывать в | 1283 |
1284 <para> | |
1285 Разрешает или запрещает записывать в | |
844 <link doc="ngx_http_log_module.xml" id="access_log"/> | 1286 <link doc="ngx_http_log_module.xml" id="access_log"/> |
845 подзапросы. | 1287 подзапросы. |
846 </para> | 1288 </para> |
847 | 1289 |
848 </directive> | 1290 </directive> |
849 | 1291 |
850 | 1292 |
1293 <directive name="max_ranges"> | |
1294 <syntax><argument>число</argument></syntax> | |
1295 <default/> | |
1296 <context>http</context> | |
1297 <context>server</context> | |
1298 <context>location</context> | |
1299 | |
1300 <para> | |
1301 Ограничивает максимальное допустимое число диапазонов в запросах с | |
1302 указанием диапазона запрашиваемых байт (byte-range requests). | |
1303 Запросы, превышающие указанное ограничение, обрабатываются как | |
1304 если бы они не содержали указания диапазонов. | |
1305 По умолчанию ограничения нет. | |
1306 Значение 0 полностью запрещает поддержку диапазонов. | |
1307 </para> | |
1308 | |
1309 </directive> | |
1310 | |
1311 | |
851 <directive name="merge_slashes"> | 1312 <directive name="merge_slashes"> |
852 <syntax><value>[on|off]</value></syntax> | 1313 <syntax><value>on</value> | <value>off</value></syntax> |
853 <default>on</default> | 1314 <default>on</default> |
854 <context>http, server</context> | 1315 <context>http</context> |
855 | 1316 <context>server</context> |
856 <para> | 1317 |
857 Директива разрешает или запрещает объединять в URI два и более слэшей в один. | 1318 <para> |
858 </para> | 1319 Разрешает или запрещает преобразование URI путём замены двух и более подряд |
859 | 1320 идущих слэшей (“<code>/</code>”) в один. |
860 <para> | 1321 </para> |
861 Необходимо иметь ввиду, что это объединение необходимо для корректной | 1322 |
862 проверки location'ов и регулярных выражений. | 1323 <para> |
863 Например, запрос "//scripts/one.php" не попадает в | 1324 Необходимо иметь ввиду, что это преобразование необходимо для корректной |
1325 проверки префиксных строк и регулярных выражений. | |
1326 Если его не делать, то запрос “<code>//scripts/one.php</code>” не попадёт в | |
864 <example> | 1327 <example> |
865 location /scripts/ { | 1328 location /scripts/ { |
866 ... | 1329 ... |
867 } | 1330 } |
868 </example> | 1331 </example> |
869 и может быть обслужен как статический файл, | 1332 и может быть обслужен как статический файл. |
870 поэтому он приводится в "/scripts/one.php". | 1333 Поэтому он преобразуется к виду “<code>/scripts/one.php</code>”. |
871 </para> | 1334 </para> |
872 | 1335 |
873 <para> | 1336 <para> |
874 Выключение объединения может понадобиться, если в URI используются имена, | 1337 Запрет преобразования может понадобиться, если в URI используются имена, |
875 закодированные методом base64, который использует символ "/". | 1338 закодированные методом base64, в котором задействован символ “<code>/</code>”. |
876 Но по соображениям безопасности лучше избегать выключения объединения. | 1339 Однако по соображениям безопасности лучше избегать отключения преобразования. |
877 </para> | 1340 </para> |
878 | 1341 |
879 <para> | 1342 <para> |
880 Если директива указана на уровне server в сервере по умолчанию, | 1343 Если директива указана на уровне |
881 то её значение распространяется на все виртуальные сервера, слушающие | 1344 <link id="server"/> |
882 на том же адресе и порту. | 1345 в сервере по умолчанию, то её значение распространяется на |
1346 все виртуальные сервера, слушающие на том же адресе и порту. | |
883 </para> | 1347 </para> |
884 | 1348 |
885 </directive> | 1349 </directive> |
886 | 1350 |
887 | 1351 |
888 <directive name="msie_padding"> | 1352 <directive name="msie_padding"> |
889 <syntax><value>[on|off]</value></syntax> | 1353 <syntax><value>on</value> | <value>off</value></syntax> |
890 <default>on</default> | 1354 <default>on</default> |
891 <context>http, server, location</context> | 1355 <context>http</context> |
892 | 1356 <context>server</context> |
893 <para> | 1357 <context>location</context> |
894 Директива разрешает или запрещает добавлять в ответы для MSIE | 1358 |
895 со статусом больше 400 | 1359 <para> |
1360 Разрешает или запрещает добавлять в ответы для MSIE со статусом больше 400 | |
896 комментарий для увеличения размера ответа до 512 байт. | 1361 комментарий для увеличения размера ответа до 512 байт. |
897 </para> | 1362 </para> |
898 | 1363 |
899 </directive> | 1364 </directive> |
900 | 1365 |
901 | 1366 |
902 <directive name="msie_refresh"> | 1367 <directive name="msie_refresh"> |
903 <syntax><value>[on|off]</value></syntax> | 1368 <syntax><value>on</value> | <value>off</value></syntax> |
904 <default>off</default> | 1369 <default>off</default> |
905 <context>http, server, location</context> | 1370 <context>http</context> |
906 | 1371 <context>server</context> |
907 <para> | 1372 <context>location</context> |
908 Директива разрешает или запрещает выдавать для MSIE refresh'ы вместо | 1373 |
909 редиректов. | 1374 <para> |
1375 Разрешает или запрещает выдавать для MSIE клиентов refresh'ы вместо | |
1376 перенаправлений. | |
910 </para> | 1377 </para> |
911 | 1378 |
912 </directive> | 1379 </directive> |
913 | 1380 |
914 | 1381 |
915 <directive name="open_file_cache"> | 1382 <directive name="open_file_cache"> |
916 <syntax><value>max=N [inactive=время]|off</value> | 1383 <syntax><value>off</value></syntax> |
1384 <syntax> | |
1385 <parameter>max</parameter>=<argument>N</argument> | |
1386 [<parameter>inactive</parameter>=<argument>время</argument>] | |
917 </syntax> | 1387 </syntax> |
918 <default>off</default> | 1388 <default>off</default> |
919 <context>http, server, location</context> | 1389 <context>http</context> |
920 | 1390 <context>server</context> |
921 <para> | 1391 <context>location</context> |
922 Директива задаёт кэш, в котором могут хранится | 1392 |
1393 <para> | |
1394 Задаёт кэш, в котором могут храниться: | |
923 <list type="bullet"> | 1395 <list type="bullet"> |
924 | 1396 |
925 <listitem> | 1397 <listitem> |
926 дескрипторы открытых файлов, информация об их размерах и времени модификации; | 1398 дескрипторы открытых файлов, информация об их размерах и времени модификации; |
927 </listitem> | 1399 </listitem> |
929 <listitem> | 1401 <listitem> |
930 информация о существовании каталогов; | 1402 информация о существовании каталогов; |
931 </listitem> | 1403 </listitem> |
932 | 1404 |
933 <listitem> | 1405 <listitem> |
934 информация об ошибках поиска файла — нет файла, нет прав на чтение | 1406 информация об ошибках поиска файла — “нет файла”, “нет прав на чтение” |
935 и тому подобное. Кэширование ошибок нужно разрешить директивой | 1407 и тому подобное. |
1408 <note> | |
1409 Кэширование ошибок нужно разрешить отдельно директивой | |
936 <link id="open_file_cache_errors"/>. | 1410 <link id="open_file_cache_errors"/>. |
1411 </note> | |
937 </listitem> | 1412 </listitem> |
938 | 1413 |
939 </list> | 1414 </list> |
940 </para> | 1415 </para> |
941 | 1416 |
942 <para> | 1417 <para> |
943 Параметры директивы: | 1418 У директивы есть следующие параметры: |
944 <list type="bullet"> | 1419 <list type="tag"> |
945 | 1420 |
946 <listitem> | 1421 <tag-name> |
947 max — задаёт максимальное число элементов в кэше; | 1422 <parameter>max</parameter> |
1423 </tag-name> | |
1424 <tag-desc> | |
1425 задаёт максимальное число элементов в кэше; | |
948 при переполнении кэша удаляются наиболее давно не используемые элементы (LRU); | 1426 при переполнении кэша удаляются наиболее давно не используемые элементы (LRU); |
949 </listitem> | 1427 </tag-desc> |
950 | 1428 |
951 <listitem> | 1429 <tag-name> |
952 inactive — задаёт время, после которого элемент кэша удаляется, | 1430 <parameter>inactive</parameter> |
953 если к нему не было обращений в течение этого времени; | 1431 </tag-name> |
954 по умолчанию 60 секунд; | 1432 <tag-desc> |
955 </listitem> | 1433 задаёт время, после которого элемент кэша удаляется, если к нему |
956 | 1434 не было обращений в течение этого времени; по умолчанию 60 секунд; |
957 <listitem> | 1435 </tag-desc> |
958 off — запрещает кэш. | 1436 |
959 </listitem> | 1437 <tag-name> |
1438 <value>off</value> | |
1439 </tag-name> | |
1440 <tag-desc> | |
1441 запрещает кэш. | |
1442 </tag-desc> | |
960 | 1443 |
961 </list> | 1444 </list> |
962 </para> | 1445 </para> |
963 | 1446 |
964 <para> | 1447 <para> |
965 Пример использования: | 1448 Пример: |
966 <example> | 1449 <example> |
967 open_file_cache max=1000 inactive=20s; | 1450 open_file_cache max=1000 inactive=20s; |
968 open_file_cache_valid 30s; | 1451 open_file_cache_valid 30s; |
969 open_file_cache_min_uses 2; | 1452 open_file_cache_min_uses 2; |
970 open_file_cache_errors on; | 1453 open_file_cache_errors on; |
1454 <!-- | |
1455 open_file_cache_events on; | |
1456 --> | |
971 </example> | 1457 </example> |
972 </para> | 1458 </para> |
973 | 1459 |
974 </directive> | 1460 </directive> |
975 | 1461 |
976 | 1462 |
977 <directive name="open_file_cache_errors"> | 1463 <directive name="open_file_cache_errors"> |
978 <syntax><value>on|off</value></syntax> | 1464 <syntax><value>on</value> | <value>off</value></syntax> |
979 <default>off</default> | 1465 <default>off</default> |
980 <context>http, server, location</context> | 1466 <context>http</context> |
981 | 1467 <context>server</context> |
982 <para> | 1468 <context>location</context> |
983 Директива определяет, кэшировать или нет ошибки поиска файлов в | 1469 |
1470 <para> | |
1471 Разрешает или запрещает кэширование ошибок поиска файлов в | |
984 <link id="open_file_cache"/>. | 1472 <link id="open_file_cache"/>. |
985 </para> | 1473 </para> |
986 | 1474 |
987 </directive> | 1475 </directive> |
988 | 1476 |
989 | 1477 |
1478 <!-- | |
1479 | |
1480 <directive name="open_file_cache_events"> | |
1481 <syntax><value>on</value> | <value>off</value></syntax> | |
1482 <default>off</default> | |
1483 <context>http</context> | |
1484 <context>server</context> | |
1485 <context>location</context> | |
1486 | |
1487 <para> | |
1488 Разрешает использование событий ядра для проверки актуальности элементов | |
1489 <link id="open_file_cache"/>. | |
1490 Эта директива работает только совместно с методом | |
1491 <link doc="../events.xml" id="kqueue"/>. | |
1492 Заметьте, что только NetBSD 2.0+ и FreeBSD 6.0+ | |
1493 поддерживают события для файловых систем произвольного типа. | |
1494 Другие операционные системы поддерживают события только для | |
1495 основных файловых систем, таких как UFS или FFS. | |
1496 </para> | |
1497 | |
1498 </directive> | |
1499 | |
1500 --> | |
1501 | |
1502 | |
990 <directive name="open_file_cache_min_uses"> | 1503 <directive name="open_file_cache_min_uses"> |
991 <syntax><value>число</value></syntax> | 1504 <syntax><argument>число</argument></syntax> |
992 <default>1</default> | 1505 <default>1</default> |
993 <context>http, server, location</context> | 1506 <context>http</context> |
994 | 1507 <context>server</context> |
995 <para> | 1508 <context>location</context> |
996 Директива определяет минимальное число использований файла в течение | 1509 |
997 времени, заданного параметром inactive в директиве | 1510 <para> |
998 <link id="open_file_cache"/>, после которого дескриптор файла | 1511 Задаёт минимальное <argument>число</argument> обращений к файлу |
999 будет оставаться открытым в кэше. | 1512 в течение времени, заданного параметром <parameter>inactive</parameter> |
1513 директивы <link id="open_file_cache"/>, после которого дескриптор | |
1514 файла будет оставаться открытым в кэше. | |
1000 </para> | 1515 </para> |
1001 | 1516 |
1002 </directive> | 1517 </directive> |
1003 | 1518 |
1004 | 1519 |
1005 <directive name="open_file_cache_valid"> | 1520 <directive name="open_file_cache_valid"> |
1006 <syntax><value>время</value></syntax> | 1521 <syntax><argument>время</argument></syntax> |
1007 <default>60</default> | 1522 <default>60s</default> |
1008 <context>http, server, location</context> | 1523 <context>http</context> |
1009 | 1524 <context>server</context> |
1010 <para> | 1525 <context>location</context> |
1011 Директива определяет, через какое время нужно проверять актуальность | 1526 |
1012 информации об элементе в <link id="open_file_cache"/>. | 1527 <para> |
1013 | 1528 Определяет время, через которое следует проверять актуальность информации |
1529 об элементе в | |
1530 <link id="open_file_cache"/>. | |
1531 <!-- | |
1532 При включенном | |
1533 <link id="open_file_cache_events"/> | |
1534 открытые дескрипторы файлов проверяются лишь единожды, а затем обновляются | |
1535 по факту их изменения. | |
1536 --> | |
1014 </para> | 1537 </para> |
1015 | 1538 |
1016 </directive> | 1539 </directive> |
1017 | 1540 |
1018 | 1541 |
1019 <directive name="optimize_server_names"> | 1542 <directive name="optimize_server_names"> |
1020 <syntax><value>[on|off]</value></syntax> | 1543 <syntax><value>on</value> | <value>off</value></syntax> |
1544 <default>off</default> | |
1545 <context>http</context> | |
1546 <context>server</context> | |
1547 | |
1548 <para> | |
1549 Директива устарела, вместо неё следует использовать директиву | |
1550 <link id="server_name_in_redirect"/>. | |
1551 </para> | |
1552 | |
1553 <!-- | |
1554 <para> | |
1555 Разрешает или запрещает оптимизировать проверку имени хоста в name-based | |
1556 виртуальных серверах. | |
1557 Проверка в частности влияет на имя хоста, используемого в перенаправлениях. | |
1558 Если оптимизация разрешена и все name-based сервера, слушающие на одной | |
1559 паре адрес:порт, имеют одинаковую конфигурацию, то во время исполнения запроса | |
1560 имена не проверяются и в перенаправлениях используется первое имя сервера. | |
1561 Если в перенаправлении нужно использовать имя хоста, переданное клиентом, | |
1562 то оптимизацию нужно выключить. | |
1563 </para> | |
1564 --> | |
1565 | |
1566 </directive> | |
1567 | |
1568 | |
1569 <directive name="port_in_redirect"> | |
1570 <syntax><value>on</value> | <value>off</value></syntax> | |
1021 <default>on</default> | 1571 <default>on</default> |
1022 <context>http, server</context> | 1572 <context>http</context> |
1023 | 1573 <context>server</context> |
1024 <para> | 1574 <context>location</context> |
1025 Устаревшая директива. | 1575 |
1026 </para> | 1576 <para> |
1027 | 1577 Разрешает или запрещает указывать порт в перенаправлениях, выдаваемых nginx'ом. |
1028 <para> | 1578 </para> |
1029 Директива разрешает или запрещает оптимизировать проверку имени хоста | 1579 |
1030 в name-based виртуальных серверах. | 1580 <para> |
1031 Проверка в частности влияет на имя хоста, используемого в редиректах. | 1581 См. также директиву <link id="server_name_in_redirect"/>. |
1032 Если оптимизация разрешена и все name-based сервера, слушающие на одной | 1582 </para> |
1033 паре адрес:порт, имеют одинаковую конфигурацию, то во время исполнения | 1583 |
1034 запроса имена не проверяются и в редиректах используется первое имя сервера. | 1584 </directive> |
1035 Если в редиректе нужно использовать имя хоста, переданное клиентом, | 1585 |
1036 то оптимизацию нужно выключить. | 1586 |
1037 </para> | 1587 <directive name="postpone_output"> |
1038 | 1588 <syntax><argument>размер</argument></syntax> |
1039 </directive> | 1589 <default>1460</default> |
1040 | 1590 <context>http</context> |
1041 | 1591 <context>server</context> |
1042 <directive name="port_in_redirect"> | 1592 <context>location</context> |
1043 <syntax><value>[on|off]</value></syntax> | 1593 |
1044 <default>on</default> | 1594 <para> |
1045 <context>http, server, location</context> | 1595 Если это возможно, то отправка данных клиенту будет отложена пока nginx не |
1046 | 1596 накопит по крайней мере указанное количество байт для отправки. |
1047 <para> | 1597 Значение 0 запрещает отложенную отправку данных. |
1048 Директива разрешает или запрещает указывать порт в редиректах, | |
1049 выдаваемых nginx'ом. | |
1050 </para> | 1598 </para> |
1051 | 1599 |
1052 </directive> | 1600 </directive> |
1053 | 1601 |
1054 | 1602 |
1055 <directive name="read_ahead"> | 1603 <directive name="read_ahead"> |
1056 <syntax><value>размер</value></syntax> | 1604 <syntax><argument>размер</argument></syntax> |
1057 <default>0</default> | 1605 <default>0</default> |
1058 <context>http, server, location</context> | 1606 <context>http</context> |
1059 | 1607 <context>server</context> |
1060 <para> | 1608 <context>location</context> |
1061 Директива задаёт ядру размер предчтения при работе с файлами. | 1609 |
1062 Под Линуксом используется системный вызов | 1610 <para> |
1063 <example> | 1611 Задаёт ядру размер предчтения при работе с файлами. |
1064 posix_fadvise(0, 0, 0, POSIX_FADV_SEQUENTIAL); | 1612 </para> |
1065 </example> | 1613 |
1066 поэтому размер игнорируется. | 1614 <para> |
1067 </para> | 1615 На Linux используется системный вызов |
1068 | 1616 <code>posix_fadvise(0, 0, 0, POSIX_FADV_SEQUENTIAL)</code>, |
1069 <para> | 1617 поэтому аргумент <argument>размер</argument> там игнорируется. |
1070 Под FreeBSD используется fcntl(O_READAHEAD, размер), появившийся | 1618 </para> |
1071 во FreeBSD-9 CURRENT. Для FreeBSD 7 нужно установить | 1619 |
1620 <para> | |
1621 На FreeBSD используется системный вызов | |
1622 <code>fcntl(O_READAHEAD,</code><argument>размер</argument><code>)</code>, | |
1623 появившийся во FreeBSD 9.0-CURRENT. | |
1624 Для FreeBSD 7 необходимо установить | |
1072 <link url="http://sysoev.ru/freebsd/patch.readahead.txt">патч</link>. | 1625 <link url="http://sysoev.ru/freebsd/patch.readahead.txt">патч</link>. |
1073 </para> | 1626 </para> |
1074 | 1627 |
1075 </directive> | 1628 </directive> |
1076 | 1629 |
1077 | 1630 |
1078 <directive name="recursive_error_pages"> | 1631 <directive name="recursive_error_pages"> |
1079 <syntax><value>[on|off]</value></syntax> | 1632 <syntax><value>on</value> | <value>off</value></syntax> |
1080 <default>off</default> | 1633 <default>off</default> |
1081 <context>http, server, location</context> | 1634 <context>http</context> |
1082 | 1635 <context>server</context> |
1083 <para> | 1636 <context>location</context> |
1084 Директива разрешает или запрещает делать несколько перенаправлений через | 1637 |
1085 директиву <link id="error_page"/>. | 1638 <para> |
1639 Разрешает или запрещает делать несколько перенаправлений через директиву | |
1640 <link id="error_page"/>. | |
1641 </para> | |
1642 | |
1643 </directive> | |
1644 | |
1645 | |
1646 <directive name="request_pool_size"> | |
1647 <syntax><argument>размер</argument></syntax> | |
1648 <default>4k</default> | |
1649 <context>http</context> | |
1650 <context>server</context> | |
1651 | |
1652 <para> | |
1653 Позволяет производить точную настройку выделений памяти | |
1654 под конкретные запросы. | |
1655 Эта директива не оказывает существенного влияния на | |
1656 производительность и её не следует использовать. | |
1086 </para> | 1657 </para> |
1087 | 1658 |
1088 </directive> | 1659 </directive> |
1089 | 1660 |
1090 | 1661 |
1091 <directive name="reset_timedout_connection"> | 1662 <directive name="reset_timedout_connection"> |
1092 <syntax><value>[on|off]</value></syntax> | 1663 <syntax> |
1664 <value>on</value> | <value>off</value></syntax> | |
1093 <default>off</default> | 1665 <default>off</default> |
1094 <context>http, server, location</context> | 1666 <context>http</context> |
1095 | 1667 <context>server</context> |
1096 <para> | 1668 <context>location</context> |
1097 Директива разрешает или запрещает сбрасывать соединение по таймауту. | 1669 |
1098 Сброс делается следующим образом — перед закрытием сокета для него | 1670 <para> |
1099 ставится опция SO_LINGER с таймаутом 0. После чего при закрытии сокета | 1671 Разрешает или запрещает сброс соединений по таймауту. |
1100 клиенту отсылается пакет RST, а всё память, связанная с этим сокетом, | 1672 Сброс делается следующим образом — перед закрытием сокета для него |
1101 освобождается. Это позволяет избежать длительного нахождения уже закрытого | 1673 ставится опция |
1102 сокета в состоянии FIN_WAIT1 с заполненными буферами. | 1674 <c-def>SO_LINGER</c-def> |
1103 </para> | 1675 с таймаутом 0. |
1104 | 1676 После чего при закрытии сокета клиенту отсылается TCP RST, а вся память, |
1105 <para> | 1677 связанная с этим сокетом, освобождается. |
1106 Необходимо отметить, что соединения, находящиеся в состоянии keepalive, | 1678 Это позволяет избежать длительного нахождения уже закрытого сокета в |
1107 по истечении таймаута закрываются обычным образом. | 1679 состоянии FIN_WAIT1 с заполненными буферами. |
1680 </para> | |
1681 | |
1682 <para> | |
1683 Необходимо отметить, что keep-alive соединения по истечении таймаута | |
1684 закрываются обычным образом. | |
1108 </para> | 1685 </para> |
1109 | 1686 |
1110 </directive> | 1687 </directive> |
1111 | 1688 |
1112 | 1689 |
1113 <directive name="resolver"> | 1690 <directive name="resolver"> |
1114 <syntax><value>адрес</value></syntax> | 1691 <syntax> |
1692 <argument>адрес</argument> ... | |
1693 [<parameter>valid</parameter>=<argument>время</argument>] | |
1694 </syntax> | |
1115 <default/> | 1695 <default/> |
1116 <context>http, server, location</context> | 1696 <context>http</context> |
1117 | 1697 <context>server</context> |
1118 <para> | 1698 <context>location</context> |
1119 Директива задаёт адрес name-сервера, например: | 1699 |
1120 <example> | 1700 <para> |
1121 resolver 127.0.0.1; | 1701 Задаёт серверы DNS, используемые для преобразования имён апстрим серверов |
1122 </example> | 1702 в адреса, например: |
1703 <example> | |
1704 resolver 127.0.0.1 192.0.2.1; | |
1705 </example> | |
1706 Аргумент <argument>адрес</argument> может быть задан либо | |
1707 IPv4-адресом, либо именем хоста; | |
1708 во втором случае используется первый полученный IPv4-адрес. | |
1709 Серверы DNS опрашиваются циклически. | |
1710 <note> | |
1711 До версии 1.1.7 можно было задать лишь один DNS-сервер. | |
1712 </note> | |
1713 По умолчанию nginx кэширует ответы, используя значение TTL из ответа. | |
1714 Необязательный параметр <parameter>valid</parameter> позволяет это | |
1715 переопределить: | |
1716 <example> | |
1717 resolver 127.0.0.1 192.0.2.1 valid=30s; | |
1718 </example> | |
1719 <note> | |
1720 До версии 1.1.9 настройка времени кэширования была невозможна | |
1721 и nginx всегда кэшировал ответы на срок в 5 минут. | |
1722 </note> | |
1123 </para> | 1723 </para> |
1124 | 1724 |
1125 </directive> | 1725 </directive> |
1126 | 1726 |
1127 | 1727 |
1128 <directive name="resolver_timeout"> | 1728 <directive name="resolver_timeout"> |
1129 <syntax><value>время</value></syntax> | 1729 <syntax><argument>время</argument></syntax> |
1130 <default>30s</default> | 1730 <default>30s</default> |
1131 <context>http, server, location</context> | 1731 <context>http</context> |
1132 | 1732 <context>server</context> |
1133 <para> | 1733 <context>location</context> |
1134 Директива задаёт таймаут для определения имени, например: | 1734 |
1135 <example> | 1735 <para> |
1136 resolver_timeout 5s; | 1736 Задаёт таймаут для преобразования имени в адрес, например: |
1737 <example> | |
1738 resolver_timeout 5s; | |
1137 </example> | 1739 </example> |
1138 </para> | 1740 </para> |
1139 | 1741 |
1140 </directive> | 1742 </directive> |
1141 | 1743 |
1142 | 1744 |
1143 <directive name="root"> | 1745 <directive name="root"> |
1144 <syntax><value>путь</value></syntax> | 1746 <syntax><argument>путь</argument></syntax> |
1145 <default>html</default> | 1747 <default>html</default> |
1146 <context>http, server, location, if в location</context> | 1748 <context>http</context> |
1147 | 1749 <context>server</context> |
1148 <para> | 1750 <context>location</context> |
1149 Директива задаёт корневой каталог для запросов. | 1751 <context>if в location</context> |
1752 | |
1753 <para> | |
1754 Задаёт корневой каталог для запросов. | |
1150 Например, при такой конфигурации | 1755 Например, при такой конфигурации |
1151 <example> | 1756 <example> |
1152 location /i/ { | 1757 location /i/ { |
1153 root /data/w3; | 1758 root /data/w3; |
1154 } | 1759 } |
1155 </example> | 1760 </example> |
1156 на запрос "/i/top.gif" будет отдан файл "/data/w3/i/top.gif". | 1761 в ответ на запрос “<code>/i/top.gif</code>” будет отдан файл |
1157 </para> | 1762 <path>/data/w3/i/top.gif</path>. |
1158 | 1763 </para> |
1159 <para> | 1764 |
1160 В значении пути можно использовать переменные. | 1765 <para> |
1161 </para> | 1766 В значении аргумента <argument>путь</argument> можно использовать переменные, |
1162 | 1767 кроме <var>$document_root</var> и <var>$realpath_root</var>. |
1163 <para> | 1768 </para> |
1164 Путь к файлу формируется как простое добавление URI к значению директивы root. | 1769 |
1165 Если же необходима модификация URI, то нужно воспользоваться директивой | 1770 <para> |
1771 Путь к файлу формируется путём простого добавления URI к значению директивы | |
1772 <code>root</code>. | |
1773 Если же URI необходимо поменять, следует воспользоваться директивой | |
1166 <link id="alias"/>. | 1774 <link id="alias"/>. |
1167 </para> | 1775 </para> |
1168 | 1776 |
1169 </directive> | 1777 </directive> |
1170 | 1778 |
1171 | 1779 |
1172 <directive name="satisfy"> | 1780 <directive name="satisfy"> |
1173 <syntax><value>all|any</value></syntax> | 1781 <syntax><value>all</value> | <value>any</value></syntax> |
1174 <default>all</default> | 1782 <default>all</default> |
1175 <context>location</context> | 1783 <context>http</context> |
1176 | 1784 <context>server</context> |
1177 <para> | 1785 <context>location</context> |
1178 Директива разрешает доступ при хотя бы одной успешной проверке, | 1786 |
1179 выполненной модулями <link doc="ngx_http_access_module.xml">ngx_http_access_module</link> | 1787 <para> |
1180 или <link doc="ngx_http_auth_basic_module.xml">ngx_http_auth_basic_module</link>: | 1788 Разрешает доступ, если оба (<value>all</value>) |
1789 или хотя бы один (<value>any</value>) из модулей | |
1790 <link doc="ngx_http_access_module.xml">ngx_http_access_module</link> | |
1791 и <link doc="ngx_http_auth_basic_module.xml">ngx_http_auth_basic_module</link> | |
1792 разрешают доступ. | |
1793 </para> | |
1794 | |
1795 <para> | |
1796 Пример: | |
1181 <example> | 1797 <example> |
1182 location / { | 1798 location / { |
1183 satisfy any; | 1799 satisfy any; |
1184 | 1800 |
1185 allow 192.168.1.0/32; | 1801 allow 192.168.1.0/32; |
1186 deny all; | 1802 deny all; |
1187 | 1803 |
1188 auth_basic "closed site"; | 1804 auth_basic "closed site"; |
1189 auth_basic_user_file conf/htpasswd; | 1805 auth_basic_user_file conf/htpasswd; |
1190 } | 1806 } |
1191 </example> | 1807 </example> |
1192 </para> | 1808 </para> |
1193 | 1809 |
1194 </directive> | 1810 </directive> |
1195 | 1811 |
1196 | 1812 |
1197 <directive name="satisfy_any"> | 1813 <directive name="satisfy_any"> |
1198 <syntax><value>on|off</value></syntax> | 1814 <syntax><value>on</value> | <value>off</value></syntax> |
1199 <default>off</default> | 1815 <default>off</default> |
1200 <context>location</context> | 1816 <context>http</context> |
1201 | 1817 <context>server</context> |
1202 <para> | 1818 <context>location</context> |
1203 Директива переименована в директиву <link id="satisfy"/>. | 1819 |
1820 <para> | |
1821 Эта директива была переименована в директиву | |
1822 <link id="satisfy">satisfy any</link>. | |
1823 </para> | |
1824 | |
1825 </directive> | |
1826 | |
1827 | |
1828 <directive name="send_lowat"> | |
1829 <syntax><argument>размер</argument></syntax> | |
1830 <default>0</default> | |
1831 <context>http</context> | |
1832 <context>server</context> | |
1833 <context>location</context> | |
1834 | |
1835 <para> | |
1836 При установке в ненулевое значение nginx будет пытаться минимизировать | |
1837 число операций отправки на клиентских сокетах либо при помощи флага | |
1838 <c-def>NOTE_LOWAT</c-def> метода | |
1839 <link doc="../events.xml" id="kqueue"/>, | |
1840 либо при помощи опции сокета <c-def>SO_SNDLOWAT</c-def>, | |
1841 с указанным размером. | |
1842 </para> | |
1843 | |
1844 <para> | |
1845 Эта директива игнорируется на Linux, Solaris и Windows. | |
1204 </para> | 1846 </para> |
1205 | 1847 |
1206 </directive> | 1848 </directive> |
1207 | 1849 |
1208 | 1850 |
1209 <directive name="send_timeout"> | 1851 <directive name="send_timeout"> |
1210 <syntax><value>время</value></syntax> | 1852 <syntax><argument>время</argument></syntax> |
1211 <default>60</default> | 1853 <default>60s</default> |
1212 <context>http, server, location</context> | 1854 <context>http</context> |
1213 | 1855 <context>server</context> |
1214 <para> | 1856 <context>location</context> |
1215 Директива задаёт таймаут при передаче ответа клиенту. | 1857 |
1858 <para> | |
1859 Задаёт таймаут при передаче ответа клиенту. | |
1216 Таймаут устанавливается не на всю передачу ответа, | 1860 Таймаут устанавливается не на всю передачу ответа, |
1217 а только между двумя операциями записями. | 1861 а только между двумя операциями записями. |
1218 Если по истечении этого времени клиент ничего не примет, | 1862 Если по истечении этого времени клиент ничего не примет, |
1219 то nginx закрывает соединение. | 1863 соединение будет закрыто. |
1220 </para> | 1864 </para> |
1221 | 1865 |
1222 </directive> | 1866 </directive> |
1223 | 1867 |
1224 | 1868 |
1225 <directive name="sendfile"> | 1869 <directive name="sendfile"> |
1226 <syntax><value>[on|off]</value></syntax> | 1870 |
1871 <syntax><value>on</value> | <value>off</value></syntax> | |
1227 <default>off</default> | 1872 <default>off</default> |
1228 <context>http, server, location</context> | 1873 <context>http</context> |
1229 | 1874 <context>server</context> |
1230 <para> | 1875 <context>location</context> |
1231 Директива разрешает или запрещает использовать sendfile(). | 1876 <context>if в location</context> |
1877 | |
1878 <para> | |
1879 Разрешает или запрещает использовать | |
1880 <c-func>sendfile</c-func>. | |
1881 </para> | |
1882 | |
1883 </directive> | |
1884 | |
1885 | |
1886 <directive name="sendfile_max_chunk"> | |
1887 | |
1888 <syntax><argument>размер</argument></syntax> | |
1889 <default>0</default> | |
1890 <context>http</context> | |
1891 <context>server</context> | |
1892 <context>location</context> | |
1893 | |
1894 <para> | |
1895 При установке в ненулевое значение ограничивает объём данных, | |
1896 который может передан за один вызов <c-func>sendfile</c-func>. | |
1897 Без этого ограничения одно быстрое соединение может целиком | |
1898 захватить рабочий процесс. | |
1232 </para> | 1899 </para> |
1233 | 1900 |
1234 </directive> | 1901 </directive> |
1235 | 1902 |
1236 | 1903 |
1238 <syntax block="yes"/> | 1905 <syntax block="yes"/> |
1239 <default/> | 1906 <default/> |
1240 <context>http</context> | 1907 <context>http</context> |
1241 | 1908 |
1242 <para> | 1909 <para> |
1243 Директива задаёт конфигурацию для виртуального сервера. | 1910 Задаёт конфигурацию для виртуального сервера. |
1244 Чёткого разделения виртуальных серверов ip-based (на основании ip-адреса) | 1911 Чёткого разделения виртуальных серверов на IP-based (на основании IP-адреса) |
1245 и name-based (на основании имени, передаваемого в строке "Host" | 1912 и name-based (на основании поля <header>Host</header> заголовка запроса) нет. |
1246 заголовка запроса), нет. | 1913 Вместо этого директивами <link id="listen"/> описываются все |
1247 Вместо этого директивами <link id="listen"/> описываются все адреса | 1914 адреса и порты, на которых нужно принимать соединения для этого сервера, |
1248 и порты, на которых нужно принимать соединения для этого сервера, | 1915 а в директиве <link id="server_name"/> указываются все имена серверов. |
1249 и в директиве <link id="server_name"/> указываются все имена серверов. | 1916 Пример конфигурации описан в документе по |
1250 Пример конфигурации описан в <link doc="../virtual_hosts.xml"> | 1917 <link doc="../virtual_hosts.xml"> |
1251 настройке виртуальных серверов</link>. | 1918 настройке виртуальных серверов</link>. |
1252 </para> | 1919 </para> |
1253 | 1920 |
1254 </directive> | 1921 </directive> |
1255 | 1922 |
1256 | 1923 |
1257 <directive name="server_name"> | 1924 <directive name="server_name"> |
1258 <syntax><value>имя [...]</value></syntax> | 1925 <syntax><argument>имя</argument> ...</syntax> |
1259 <default>hostname</default> | 1926 <default>""</default> |
1260 <context>server</context> | 1927 <context>server</context> |
1261 | 1928 |
1262 <para> | 1929 <para> |
1263 Директива задаёт имена виртуального сервера, например: | 1930 Задаёт имена виртуального сервера, например: |
1264 <example> | 1931 <example> |
1265 server { | 1932 server { |
1266 server_name example.com www.example.com; | 1933 server_name example.com www.example.com; |
1267 } | 1934 } |
1268 </example> | 1935 </example> |
1269 </para> | 1936 </para> |
1270 | 1937 |
1271 <para> | 1938 <para> |
1272 Первое имя становится основным именем сервера. | 1939 Первое имя становится основным именем сервера. |
1273 По умолчанию используется имя машины (hostname). | 1940 В именах серверов можно использовать звёздочку (“<code>*</code>”) |
1274 В именах серверов можно использовать "*" для замены первой или последней | 1941 для замены первой или последней части имени: |
1275 части имени: | |
1276 <example> | 1942 <example> |
1277 server { | 1943 server { |
1278 server_name example.com *.example.com www.example.*; | 1944 server_name example.com *.example.com www.example.*; |
1279 } | 1945 } |
1280 </example> | 1946 </example> |
1281 </para> | 1947 </para> |
1282 | 1948 |
1283 <para> | 1949 <para> |
1284 Два первых вышеприведённых имени можно объединить в одно: | 1950 Два первых вышеприведённых имени можно объединить в одно: |
1285 <example> | 1951 <example> |
1286 server { | 1952 server { |
1287 server_name .example.com; | 1953 server_name .example.com; |
1288 } | 1954 } |
1289 </example> | 1955 </example> |
1290 </para> | 1956 </para> |
1291 | 1957 |
1292 <para> | 1958 <para> |
1293 Кроме того, в качестве имени сервера можно использовать регулярное | 1959 Если аргумент равен “<var>$hostname</var>” (0.9.4), то |
1294 выражение, указав перед ним "~": | 1960 подставляется имя хоста (hostname) машины. |
1961 </para> | |
1962 | |
1963 <para> | |
1964 В качестве имени сервера можно также использовать регулярное выражение, | |
1965 указав перед ним тильду (“<code>~</code>”): | |
1295 <example> | 1966 <example> |
1296 server { | 1967 server { |
1297 server_name www.example.com ~^www\d+\.example\.com$; | 1968 server_name www.example.com ~^www\d+\.example\.com$; |
1298 } | 1969 } |
1299 </example> | 1970 </example> |
1300 </para> | 1971 </para> |
1301 | 1972 |
1302 <para> | 1973 <para> |
1303 Регулярное выражение может содержать выделения (0.7.40), которые | 1974 Регулярное выражение может содержать выделения (0.7.40), |
1304 могут затем использоваться в других директивах: | 1975 которые могут затем использоваться в других директивах: |
1305 <example> | 1976 <example> |
1306 server { | 1977 server { |
1307 server_name ~^(www\.)?(.+)$; | 1978 server_name ~^(www\.)?(.+)$; |
1308 | 1979 |
1309 location / { | 1980 location / { |
1310 root /sites/$2; | 1981 root /sites/$2; |
1311 } | 1982 } |
1312 } | 1983 } |
1313 | 1984 |
1314 server { | 1985 server { |
1315 server_name _; | 1986 server_name _; |
1316 | 1987 |
1317 location / { | 1988 location / { |
1318 root /sites/default; | 1989 root /sites/default; |
1319 } | 1990 } |
1320 } | 1991 } |
1321 </example> | 1992 </example> |
1322 </para> | 1993 </para> |
1323 | 1994 |
1324 <para> | 1995 <para> |
1325 Начиная с 0.8.25, именованные выделения в регулярном выражении создают | 1996 Именованные выделения в регулярном выражении создают переменные (0.8.25), |
1326 переменные, которые могут затем использоваться в других директивах: | 1997 которые могут затем использоваться в других директивах: |
1327 <example> | 1998 <example> |
1328 server { | 1999 server { |
1329 server_name ~^(www\.)?(<emphasis>?<domain></emphasis>.+)$; | 2000 server_name ~^(www\.)?(?<domain>.+)$; |
1330 | 2001 |
1331 location / { | 2002 location / { |
1332 root /sites/<emphasis>$domain</emphasis>; | 2003 root /sites/$domain; |
1333 } | 2004 } |
1334 } | 2005 } |
1335 | 2006 |
1336 server { | 2007 server { |
1337 server_name _; | 2008 server_name _; |
1338 | 2009 |
1339 location / { | 2010 location / { |
1340 root /sites/default; | 2011 root /sites/default; |
1341 } | 2012 } |
1342 } | 2013 } |
1343 </example> | 2014 </example> |
1344 </para> | 2015 </para> |
1345 | 2016 |
1346 <para> | 2017 <para> |
1347 Начиная с 0.7.11, можно использовать пустое имя "": | 2018 Возможно также указать пустое имя сервера (0.7.11): |
1348 <example> | 2019 <example> |
1349 server { | 2020 server { |
1350 server_name www.example.com ""; | 2021 server_name www.example.com ""; |
1351 } | 2022 } |
1352 </example> | 2023 </example> |
1353 что позволяет обрабатывать запросы без строки "Host" в заголовке запроса | 2024 Это позволяет обрабатывать запросы без поля <header>Host</header> заголовка |
1354 в этом сервере, а не в сервере по умолчанию для данной пары адрес:порт. | 2025 запроса в этом сервере, а не в сервере по умолчанию для данной пары адрес:порт. |
2026 Это настройка по умолчанию. | |
2027 <note> | |
2028 До 0.8.48 по умолчанию использовалось имя хоста (hostname) машины. | |
2029 </note> | |
1355 </para> | 2030 </para> |
1356 | 2031 |
1357 <para> | 2032 <para> |
1358 Порядок проверки имён следующий: | 2033 Порядок проверки имён следующий: |
1359 <list type="bullet"> | 2034 <list type="enum"> |
1360 | 2035 |
1361 <listitem> | 2036 <listitem> |
1362 полные имена, | 2037 полные имена |
1363 </listitem> | 2038 </listitem> |
1364 | 2039 |
1365 <listitem> | 2040 <listitem> |
1366 имена с маской в начале имени — *.example.com, | 2041 имена с маской в начале имени, например “<code>*.example.com</code>” |
1367 </listitem> | 2042 </listitem> |
1368 | 2043 |
1369 <listitem> | 2044 <listitem> |
1370 имена с маской в конце имени — mail.*, | 2045 имена с маской в конце имени, например “<code>mail.*</code>” |
1371 </listitem> | 2046 </listitem> |
1372 | 2047 |
1373 <listitem> | 2048 <listitem> |
1374 регулярные выражения. | 2049 регулярные выражения |
1375 </listitem> | 2050 </listitem> |
1376 | 2051 |
1377 </list> | 2052 </list> |
1378 </para> | 2053 </para> |
1379 | 2054 |
1380 </directive> | 2055 </directive> |
1381 | 2056 |
1382 | 2057 |
1383 <directive name="server_name_in_redirect"> | 2058 <directive name="server_name_in_redirect"> |
1384 <syntax><value>[on|off]</value></syntax> | 2059 <syntax><value>on</value> | <value>off</value></syntax> |
2060 <default>off</default> | |
2061 <context>http</context> | |
2062 <context>server</context> | |
2063 <context>location</context> | |
2064 | |
2065 <para> | |
2066 Разрешает или запрещает использовать в перенаправлениях, выдаваемых nginx'ом, | |
2067 основное имя сервера, задаваемое директивой | |
2068 <link id="server_name"/>. | |
2069 Если запрещено, то используется имя, указанное в поле <header>Host</header> | |
2070 заголовка запроса. | |
2071 Если же этого поля нет, то используется IP-адрес сервера. | |
2072 </para> | |
2073 | |
2074 <para> | |
2075 См. также директиву <link id="port_in_redirect"/>. | |
2076 </para> | |
2077 | |
2078 </directive> | |
2079 | |
2080 | |
2081 <directive name="server_names_hash_bucket_size"> | |
2082 <syntax><argument>размер</argument></syntax> | |
2083 <default>32|64|128</default> | |
2084 <context>http</context> | |
2085 | |
2086 <para> | |
2087 Задаёт размер корзины в хэш-таблицах имён серверов. | |
2088 Значение по умолчанию зависит от размера строки кэша процессора. | |
2089 Подробнее смотрите в документе по | |
2090 <link doc="../hash.xml">настройке хэшей</link>. | |
2091 </para> | |
2092 | |
2093 </directive> | |
2094 | |
2095 | |
2096 <directive name="server_names_hash_max_size"> | |
2097 <syntax><argument>размер</argument></syntax> | |
2098 <default>512</default> | |
2099 <context>http</context> | |
2100 | |
2101 <para> | |
2102 Задаёт максимальный <argument>размер</argument> хэш-таблиц имён серверов. | |
2103 Подробнее смотрите в документе по | |
2104 <link doc="../hash.xml">настройке хэшей</link>. | |
2105 </para> | |
2106 | |
2107 </directive> | |
2108 | |
2109 | |
2110 <directive name="server_tokens"> | |
2111 <syntax><value>on</value> | <value>off</value></syntax> | |
1385 <default>on</default> | 2112 <default>on</default> |
1386 <context>http, server, location</context> | 2113 <context>http</context> |
1387 | 2114 <context>server</context> |
1388 <para> | 2115 <context>location</context> |
1389 Директива разрешает или запрещает использовать в редиректах, выдаваемых | 2116 |
1390 nginx'ом, основное имя сервера, задаваемое директивой | 2117 <para> |
1391 <link id="server_name"/>. | 2118 Разрешает или запрещает выдавать версию nginx'а в сообщениях об ошибках и |
1392 Если использование основного имени запрещено, то используется имя, | 2119 в поле <header>Server</header> заголовка ответа. |
1393 указанного в строке "Host" в заголовке запроса. | 2120 </para> |
1394 Если же этой строки нет, то используется IP-адрес сервера. | 2121 |
1395 </para> | 2122 </directive> |
1396 | 2123 |
1397 </directive> | 2124 |
1398 | 2125 <directive name="tcp_nodelay"> |
1399 | 2126 <syntax><value>on</value> | <value>off</value></syntax> |
1400 <directive name="server_names_hash_max_size"> | |
1401 <syntax><value>число</value></syntax> | |
1402 <default>512</default> | |
1403 <context>http</context> | |
1404 | |
1405 <para> | |
1406 Директива задаёт максимальный размер хэш-таблиц имён серверов. | |
1407 Подробнее смотри в <link doc="../hash.xml">описании | |
1408 настройки хэшей</link>. | |
1409 </para> | |
1410 | |
1411 </directive> | |
1412 | |
1413 | |
1414 <directive name="server_names_hash_bucket_size"> | |
1415 <syntax><value>число</value></syntax> | |
1416 <default>32/64/128</default> | |
1417 <context>http</context> | |
1418 | |
1419 <para> | |
1420 Директива задаёт размер корзины в хэш-таблицах имён серверов. | |
1421 Значение по умолчанию зависит от размера строки кэша процессора. | |
1422 Подробнее смотри в <link doc="../hash.xml">описании | |
1423 настройки хэшей</link>. | |
1424 </para> | |
1425 | |
1426 </directive> | |
1427 | |
1428 | |
1429 <directive name="server_tokens"> | |
1430 <syntax><value>[on|off]</value></syntax> | |
1431 <default>on</default> | 2127 <default>on</default> |
1432 <context>http, server, location</context> | 2128 <context>http</context> |
1433 | 2129 <context>server</context> |
1434 <para> | 2130 <context>location</context> |
1435 Директива разрешает или запрещает выдавать версию nginx'а | 2131 |
1436 в сообщениях об ошибках и в строке заголовка ответа "Server". | 2132 <para> |
1437 </para> | 2133 Разрешает или запрещает использование опции <c-def>TCP_NODELAY</c-def>. |
1438 | |
1439 </directive> | |
1440 | |
1441 | |
1442 <directive name="tcp_nodelay"> | |
1443 <syntax><value>[on|off]</value></syntax> | |
1444 <default>on</default> | |
1445 <context>http, server, location</context> | |
1446 | |
1447 <para> | |
1448 Директива разрешает или запрещает использовать опцию TCP_NODELAY. | |
1449 Опция включаются только при переходе соединения в состояние keep-alive. | 2134 Опция включаются только при переходе соединения в состояние keep-alive. |
1450 </para> | 2135 </para> |
1451 | 2136 |
1452 </directive> | 2137 </directive> |
1453 | 2138 |
1454 | 2139 |
1455 <directive name="tcp_nopush"> | 2140 <directive name="tcp_nopush"> |
1456 <syntax><value>[on|off]</value></syntax> | 2141 <syntax><value>on</value> | <value>off</value></syntax> |
1457 <default>off</default> | 2142 <default>off</default> |
1458 <context>http, server, location</context> | 2143 <context>http</context> |
1459 | 2144 <context>server</context> |
1460 <para> | 2145 <context>location</context> |
1461 Директива разрешает или запрещает использовать опции | 2146 |
1462 TCP_NOPUSH во FreeBSD или TCP_CORK в Linux. | 2147 <para> |
2148 Разрешает или запрещает использование опции сокета | |
2149 <c-def>TCP_NOPUSH</c-def> во FreeBSD или | |
2150 <c-def>TCP_CORK</c-def> в Linux. | |
1463 Опции включаются только при использовании <link id="sendfile"/>. | 2151 Опции включаются только при использовании <link id="sendfile"/>. |
1464 Включение опции позволяет | 2152 Включение опции позволяет |
1465 <list type="bullet"> | 2153 <list type="bullet"> |
1466 | 2154 |
1467 <listitem> | 2155 <listitem> |
1468 передавать заголовок ответа и начало файла в одном пакете в Linux | 2156 передавать заголовок ответа и начало файла в одном пакете |
1469 и во FreeBSD 4.x; | 2157 в Linux и во FreeBSD 4.*; |
1470 </listitem> | 2158 </listitem> |
1471 | 2159 |
1472 <listitem> | 2160 <listitem> |
1473 передавать файл в полных пакетах. | 2161 передавать файл полными пакетами. |
1474 </listitem> | 2162 </listitem> |
1475 | 2163 |
1476 </list> | 2164 </list> |
1477 </para> | 2165 </para> |
1478 | 2166 |
1479 </directive> | 2167 </directive> |
1480 | 2168 |
1481 | 2169 |
1482 <directive name="try_files"> | 2170 <directive name="try_files"> |
1483 <syntax><value>файл [файл ...] (uri|=код)</value></syntax> | 2171 <syntax> |
2172 <argument>файл</argument> ... | |
2173 <argument>uri</argument> | |
2174 </syntax> | |
2175 <syntax> | |
2176 <argument>файл</argument> ... | |
2177 =<argument>код</argument> | |
2178 </syntax> | |
1484 <default/> | 2179 <default/> |
1485 <context>location</context> | 2180 <context>server</context> |
1486 | 2181 <context>location</context> |
1487 <para> | 2182 |
1488 Директива проверяет существование файлов в заданном порядке | 2183 <para> |
1489 и использует для обработки запроса первый найденный файл, причём | 2184 Проверяет существование файлов в заданном порядке и использует |
1490 обработка делается в контексте этого же location'а. | 2185 для обработки запроса первый найденный файл, причём обработка |
1491 С помощью слэша в конце имени можно задать проверку существования | 2186 делается в контексте этого же location'а. |
1492 каталога, например, так — "$uri/". | 2187 Путь к файлу строится из аргумента <argument>файл</argument> |
1493 В случае, если ни один файл не найден, то делается внутренний редирект | 2188 в соответствии с директивами |
1494 на последний параметр. | 2189 <link id="root"/> и <link id="alias"/>. |
1495 Последний параметр может быть кодом (0.7.51): | 2190 С помощью слэша в конце имени можно проверить существование каталога, |
2191 например, “<code>$uri/</code>”. | |
2192 В случае, если ни один файл не найден, то делается внутреннее | |
2193 перенаправление на <argument>uri</argument>, заданный последним аргументом. | |
2194 Например: | |
2195 <example> | |
2196 location /images/ { | |
2197 try_files $uri /images/default.gif; | |
2198 } | |
2199 | |
2200 location = /images/default.gif { | |
2201 expires 30s; | |
2202 } | |
2203 </example> | |
2204 Последний аргумент может также указывать на именованный location, | |
2205 смотрите примеры ниже. | |
2206 С версии 0.7.51 последний аргумент может также быть кодом: | |
1496 <example> | 2207 <example> |
1497 location / { | 2208 location / { |
1498 try_files $uri $uri/index.html $uri.html =404; | 2209 try_files $uri $uri/index.html $uri.html =404; |
1499 } | 2210 } |
1500 </example> | 2211 </example> |
1501 </para> | 2212 </para> |
1502 | 2213 |
1503 <para> | 2214 <para> |
1504 Пример использования при проксировании Mongrel: | 2215 Пример использования при проксировании Mongrel: |
1505 <example> | 2216 <example> |
1506 location / { | 2217 location / { |
1507 try_files /system/maintenance.html | 2218 try_files /system/maintenance.html |
1508 $uri $uri/index.html $uri.html | 2219 $uri $uri/index.html $uri.html |
1509 @mongrel; | 2220 @mongrel; |
1510 } | 2221 } |
1511 | 2222 |
1512 location @mongrel { | 2223 location @mongrel { |
1513 proxy_pass http://mongrel; | 2224 proxy_pass http://mongrel; |
1514 } | 2225 } |
1515 </example> | 2226 </example> |
1516 </para> | 2227 </para> |
1517 | 2228 |
1518 <para> | 2229 <para> |
1519 Пример использования вместе с Drupal/FastCGI: | 2230 Пример использования вместе с Drupal/FastCGI: |
1520 <example> | 2231 <example> |
1521 location / { | 2232 location / { |
1522 try_files $uri $uri/ @drupal; | 2233 try_files $uri $uri/ @drupal; |
1523 } | 2234 } |
1524 | 2235 |
1525 location ~ \.php$ { | 2236 location ~ \.php$ { |
1526 try_files $uri @drupal; | 2237 try_files $uri @drupal; |
1527 | 2238 |
1528 fastcgi_pass ...; | 2239 fastcgi_pass ...; |
1529 | 2240 |
1530 fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name; | 2241 fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name; |
1531 fastcgi_param SCRIPT_NAME $fastcgi_script_name; | 2242 fastcgi_param SCRIPT_NAME $fastcgi_script_name; |
1532 fastcgi_param QUERY_STRING $args; | 2243 fastcgi_param QUERY_STRING $args; |
1533 | 2244 |
1534 ... прочие fastcgi_param | 2245 ... прочие fastcgi_param |
1535 } | 2246 } |
1536 | 2247 |
1537 location @drupal { | 2248 location @drupal { |
1538 fastcgi_pass ...; | 2249 fastcgi_pass ...; |
1539 | 2250 |
1540 fastcgi_param SCRIPT_FILENAME /path/to/index.php; | 2251 fastcgi_param SCRIPT_FILENAME /path/to/index.php; |
1541 fastcgi_param SCRIPT_NAME /index.php; | 2252 fastcgi_param SCRIPT_NAME /index.php; |
1542 fastcgi_param QUERY_STRING q=$uri&$args; | 2253 fastcgi_param QUERY_STRING q=$uri&$args; |
1543 | 2254 |
1544 ... прочие fastcgi_param | 2255 ... прочие fastcgi_param |
1545 } | 2256 } |
1546 </example> | 2257 </example> |
1547 В этом примере директива try_files | 2258 В следующем примере директива <code>try_files</code> |
1548 <example> | 2259 <example> |
1549 location / { | 2260 location / { |
1550 try_files $uri $uri/ @drupal; | 2261 try_files $uri $uri/ @drupal; |
1551 } | 2262 } |
1552 </example> | 2263 </example> |
1553 аналогична директивам | 2264 аналогична директивам |
1554 <example> | 2265 <example> |
1555 location / { | 2266 location / { |
1556 error_page 404 = @drupal; | 2267 error_page 404 = @drupal; |
1557 log_not_found off; | 2268 log_not_found off; |
1558 } | 2269 } |
1559 </example> | 2270 </example> |
1560 А здесь | 2271 А здесь |
1561 <example> | 2272 <example> |
1562 location ~ \.php$ { | 2273 location ~ \.php$ { |
1563 try_files $uri @drupal; | 2274 try_files $uri @drupal; |
1564 | 2275 |
1565 fastcgi_pass ...; | 2276 fastcgi_pass ...; |
1566 | 2277 |
1567 fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name; | 2278 fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name; |
1568 | 2279 |
1569 ... | 2280 ... |
1570 } | 2281 } |
1571 </example> | 2282 </example> |
1572 try_files тестирует существование PHP-файла, | 2283 <code>try_files</code> проверяет существование PHP-файла, |
1573 прежде чем передать запрос FastCGI-серверу. | 2284 прежде чем передать запрос FastCGI-серверу. |
1574 </para> | 2285 </para> |
1575 | 2286 |
1576 <para> | 2287 <para> |
1577 Пример использования вместе с Wordpress и Joomla: | 2288 Пример использования вместе с Wordpress и Joomla: |
1578 <example> | 2289 <example> |
1579 location / { | 2290 location / { |
1580 try_files $uri $uri/ @wordpress; | 2291 try_files $uri $uri/ @wordpress; |
1581 } | 2292 } |
1582 | 2293 |
1583 location ~ \.php$ { | 2294 location ~ \.php$ { |
1584 try_files $uri @wordpress; | 2295 try_files $uri @wordpress; |
1585 | 2296 |
1586 fastcgi_pass ...; | 2297 fastcgi_pass ...; |
1587 | 2298 |
1588 fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name; | 2299 fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name; |
1589 ... прочие fastcgi_param | 2300 ... прочие fastcgi_param |
1590 } | 2301 } |
1591 | 2302 |
1592 location @wordpress { | 2303 location @wordpress { |
1593 fastcgi_pass ...; | 2304 fastcgi_pass ...; |
1594 | 2305 |
1595 fastcgi_param SCRIPT_FILENAME /path/to/index.php; | 2306 fastcgi_param SCRIPT_FILENAME /path/to/index.php; |
1596 ... прочие fastcgi_param | 2307 ... прочие fastcgi_param |
1597 } | 2308 } |
1598 </example> | 2309 </example> |
1599 </para> | 2310 </para> |
1600 | 2311 |
1606 <default> | 2317 <default> |
1607 text/html html; | 2318 text/html html; |
1608 image/gif gif; | 2319 image/gif gif; |
1609 image/jpeg jpg; | 2320 image/jpeg jpg; |
1610 </default> | 2321 </default> |
1611 <context>http, server, location</context> | 2322 <context>http</context> |
1612 | 2323 <context>server</context> |
1613 <para> | 2324 <context>location</context> |
1614 Директива задаёт соответствие расширения и MIME-типов ответов. | 2325 |
1615 Одному MIME-типу может соответствовать несколько расширений. | 2326 <para> |
1616 </para> | 2327 Задаёт соответствие расширений имён файлов и MIME-типов ответов. |
1617 | 2328 Расширения нечувствительны к регистру символов. |
1618 <para> | 2329 Одному MIME-типу может соответствовать несколько расширений, например: |
1619 Достаточно полная таблица соответствий входит в дистрибутив | 2330 <example> |
1620 и находится в файле conf/mime.types. | 2331 types { |
1621 </para> | 2332 application/octet-stream bin exe dll; |
1622 | 2333 application/octet-stream deb; |
1623 <para> | 2334 application/octet-stream dmg; |
1624 Для того, чтобы для определённого location'а для всех ответов выдавался | 2335 } |
1625 MIME-тип "application/octet-stream", можно использовать следующее: | 2336 </example> |
2337 </para> | |
2338 | |
2339 <para> | |
2340 Достаточно полная таблица соответствий входит в дистрибутив nginx | |
2341 и находится в файле <path>conf/mime.types</path>. | |
2342 </para> | |
2343 | |
2344 <para> | |
2345 Для того, чтобы для определённого location'а для всех ответов | |
2346 выдавался MIME-тип “<code>application/octet-stream</code>”, | |
2347 можно использовать следующее: | |
1626 <example> | 2348 <example> |
1627 location /download/ { | 2349 location /download/ { |
1628 types { } | 2350 types { } |
1629 default_type application/octet-stream; | 2351 default_type application/octet-stream; |
1630 } | 2352 } |
1631 </example> | 2353 </example> |
2354 </para> | |
2355 | |
2356 </directive> | |
2357 | |
2358 | |
2359 <directive name="types_hash_bucket_size"> | |
2360 <syntax><argument>размер</argument></syntax> | |
2361 <default>32|64|128</default> | |
2362 <context>http</context> | |
2363 <context>server</context> | |
2364 <context>location</context> | |
2365 | |
2366 <para> | |
2367 Задаёт размер корзины в хэш-таблицах типов. | |
2368 Значение по умолчанию зависит от размера строки кэша процессора. | |
2369 Подробнее смотрите в документе по | |
2370 <link doc="../hash.xml">настройке хэшей</link>. | |
2371 </para> | |
2372 | |
2373 </directive> | |
2374 | |
2375 | |
2376 <directive name="types_hash_max_size"> | |
2377 <syntax><argument>размер</argument></syntax> | |
2378 <default>1024</default> | |
2379 <context>http</context> | |
2380 <context>server</context> | |
2381 <context>location</context> | |
2382 | |
2383 <para> | |
2384 Задаёт максимальный <argument>размер</argument> хэш-таблиц типов. | |
2385 Подробнее смотрите в документе по | |
2386 <link doc="../hash.xml">настройке хэшей</link>. | |
1632 </para> | 2387 </para> |
1633 | 2388 |
1634 </directive> | 2389 </directive> |
1635 | 2390 |
1636 | 2391 |
1637 <directive name="underscores_in_headers"> | 2392 <directive name="underscores_in_headers"> |
1638 <syntax><value>[on|off]</value></syntax> | 2393 <syntax><value>on</value> | <value>off</value></syntax> |
1639 <default>off</default> | 2394 <default>off</default> |
1640 <context>http, server</context> | 2395 <context>http</context> |
1641 | 2396 <context>server</context> |
1642 <para> | 2397 |
1643 Директива разрешает или запрещает использование символов подчёркивания | 2398 <para> |
1644 в строках заголовка запроса клиента. | 2399 Разрешает или запрещает использование символов подчёркивания в |
2400 полях заголовка запроса клиента. | |
2401 Если запрещено, поля заголовка запроса, в чьих именах есть подчёркивания, | |
2402 помечаются как недопустимые и подпадают под действие директивы | |
2403 <link id="ignore_invalid_headers"/>. | |
2404 </para> | |
2405 | |
2406 </directive> | |
2407 | |
2408 | |
2409 <directive name="variables_hash_bucket_size"> | |
2410 <syntax><argument>размер</argument></syntax> | |
2411 <default>64</default> | |
2412 <context>http</context> | |
2413 | |
2414 <para> | |
2415 Задаёт размер корзины в хэш-таблице переменных. | |
2416 Подробнее смотрите в документе по | |
2417 <link doc="../hash.xml">настройке хэшей</link>. | |
2418 </para> | |
2419 | |
2420 </directive> | |
2421 | |
2422 | |
2423 <directive name="variables_hash_max_size"> | |
2424 <syntax><argument>размер</argument></syntax> | |
2425 <default>512</default> | |
2426 <context>http</context> | |
2427 | |
2428 <para> | |
2429 Задаёт максимальный <argument>размер</argument> хэш-таблицы переменных. | |
2430 Подробнее смотрите в документе по | |
2431 <link doc="../hash.xml">настройке хэшей</link>. | |
1645 </para> | 2432 </para> |
1646 | 2433 |
1647 </directive> | 2434 </directive> |
1648 | 2435 |
1649 </section> | 2436 </section> |
1650 | 2437 |
1651 | 2438 <section id="variables" name="Встроенные переменные"> |
1652 <section name="Встроенные переменные" id="variables"> | 2439 |
1653 | 2440 <para> |
1654 <para> | 2441 Модуль <code>ngx_http_core_module</code> поддерживает встроенные переменные, |
1655 Модуль ngx_http_core_module поддерживает встроенные переменные, имена | 2442 имена которых совпадают с именами переменных веб-сервера Apache. |
1656 которых совпадают с именами переменных в Apache. | 2443 Прежде всего, это переменные, представляющие из себя поля заголовка |
1657 Прежде всего, это переменные, представляющие из себя строки заголовка | 2444 запроса клиента, такие как <var>$http_user_agent</var>, <var>$http_cookie</var> |
1658 запроса клиента, например, $http_user_agent, $http_cookie | 2445 и тому подобное. |
1659 и тому подобное. Кроме того, есть и другие переменные: | 2446 Кроме того, есть и другие переменные: |
1660 <list type="bullet"> | 2447 <list type="tag"> |
1661 | 2448 |
1662 <listitem> | 2449 <tag-name><var>$arg_</var><argument>имя</argument></tag-name> |
1663 $args, эта переменная равна аргументам в строке запроса; | 2450 <tag-desc> |
1664 </listitem> | 2451 аргумент <argument>имя</argument> в строке запроса |
1665 | 2452 </tag-desc> |
1666 <listitem> | 2453 |
1667 $arg_<value>name</value>, эта переменная равна аргументу <value>name</value> | 2454 <tag-name><var>$args</var></tag-name> |
1668 в строке запроса; | 2455 <tag-desc> |
1669 </listitem> | 2456 аргументы в строке запроса |
1670 | 2457 </tag-desc> |
1671 <listitem> | 2458 |
1672 $binary_remote_addr, эта переменная равна адресу клиента в бинарном виде, | 2459 <tag-name><var>$binary_remote_addr</var></tag-name> |
1673 длина её значения всегда 4 байта; | 2460 <tag-desc> |
1674 </listitem> | 2461 адрес клиента в бинарном виде, длина значения всегда 4 байта |
1675 | 2462 </tag-desc> |
1676 <listitem> | 2463 |
1677 $content_length, эта переменная равна строке "Content-Length" в заголовке | 2464 <tag-name><var>$body_bytes_sent</var></tag-name> |
1678 запроса; | 2465 <tag-desc> |
1679 </listitem> | 2466 число байт, переданное клиенту, без учёта заголовка ответа |
1680 | 2467 </tag-desc> |
1681 <listitem> | 2468 |
1682 $content_type, эта переменная равна строке "Content-Type" в заголовке запроса; | 2469 <tag-name><var>$content_length</var></tag-name> |
1683 </listitem> | 2470 <tag-desc> |
1684 | 2471 поле <header>Content-Length</header> заголовка запроса |
1685 <listitem> | 2472 </tag-desc> |
1686 $cookie_<value>name</value>, эта переменная равна cookie <value>name</value>; | 2473 |
1687 </listitem> | 2474 <tag-name><var>$content_type</var></tag-name> |
1688 | 2475 <tag-desc> |
1689 <listitem> | 2476 поле <header>Content-Type</header> заголовка запроса |
1690 $document_root, эта переменная равна значению директивы root для | 2477 </tag-desc> |
1691 текущего запроса; | 2478 |
1692 </listitem> | 2479 <tag-name><var>$cookie_</var><argument>имя</argument></tag-name> |
1693 | 2480 <tag-desc> |
1694 <listitem> | 2481 cookie <argument>имя</argument> |
1695 $document_uri, то же самое, что и $uri; | 2482 </tag-desc> |
1696 </listitem> | 2483 |
1697 | 2484 <tag-name><var>$document_root</var></tag-name> |
1698 <listitem> | 2485 <tag-desc> |
1699 $host, эта переменная равна строке "Host" в заголовке запроса | 2486 значение директивы <link id="root"/> для текущего запроса |
1700 или имени сервера, на который пришёл запрос, если этой строки нет; | 2487 </tag-desc> |
1701 </listitem> | 2488 |
1702 | 2489 <tag-name><var>$document_uri</var></tag-name> |
1703 <listitem> | 2490 <tag-desc> |
1704 $hostname, эта переменная равна имени хоста; | 2491 то же, что и <var>$uri</var> |
1705 </listitem> | 2492 </tag-desc> |
1706 | 2493 |
1707 <listitem> | 2494 <tag-name><var>$host</var></tag-name> |
1708 $http_<value>name</value>, эта переменная равна строке <value>name</value> | 2495 <tag-desc> |
1709 в заголовке запроса; | 2496 поле <header>Host</header> заголовка запроса, |
1710 </listitem> | 2497 или имя сервера, соответствующего запросу, если этого поля нет |
1711 | 2498 </tag-desc> |
1712 <listitem> | 2499 |
1713 $is_args, эта переменная равна "?", если в строке запроса есть аргументы, | 2500 <tag-name><var>$hostname</var></tag-name> |
1714 и пустой строке, если их нет; | 2501 <tag-desc> |
1715 </listitem> | 2502 имя хоста |
1716 | 2503 </tag-desc> |
1717 <listitem> | 2504 |
1718 $limit_rate, эта переменная позволяет установить ограничение | 2505 <tag-name><var>$http_</var><argument>имя</argument></tag-name> |
1719 скорости соединения; | 2506 <tag-desc> |
1720 </listitem> | 2507 поле <argument>имя</argument> заголовка запроса |
1721 | 2508 </tag-desc> |
1722 <listitem> | 2509 |
1723 $pid, эта переменная равна номеру рабочего процесса; | 2510 <tag-name><var>$https</var></tag-name> |
1724 </listitem> | 2511 <tag-desc> |
1725 | 2512 “<code>on</code>” |
1726 <listitem> | 2513 если соединение работает в режиме SSL, |
1727 $request_method, эта переменная равна методу запроса, | 2514 либо пустая строка |
1728 обычно это "GET" или "POST"; | 2515 </tag-desc> |
1729 </listitem> | 2516 |
1730 | 2517 <tag-name><var>$is_args</var></tag-name> |
1731 <listitem> | 2518 <tag-desc> |
1732 $remote_addr, эта переменная равна адресу клиента; | 2519 “<code>?</code>”, если в строке запроса есть аргументы, |
1733 </listitem> | 2520 и пустая строка, если их нет |
1734 | 2521 </tag-desc> |
1735 <listitem> | 2522 |
1736 $remote_port, эта переменная равна порту клиента; | 2523 <tag-name><var>$limit_rate</var></tag-name> |
1737 </listitem> | 2524 <tag-desc> |
1738 | 2525 позволяет ограничивать скорость соединения |
1739 <listitem> | 2526 </tag-desc> |
1740 $remote_user, эта переменная равна имени пользователя, используемого | 2527 |
1741 в Basic аутентификации; | 2528 <tag-name><var>$nginx_version</var></tag-name> |
1742 </listitem> | 2529 <tag-desc> |
1743 | 2530 версия nginx |
1744 <listitem> | 2531 </tag-desc> |
1745 $realpath_root, эта переменная равна значению директивы root для | 2532 |
1746 текущего запроса, при этом все символические ссылки преобразованы | 2533 <tag-name><var>$pid</var></tag-name> |
1747 в реальные путь; | 2534 <tag-desc> |
1748 </listitem> | 2535 номер (PID) рабочего процесса |
1749 | 2536 </tag-desc> |
1750 <listitem> | 2537 |
1751 $request_filename, эта переменная равна пути к файлу для текущего | 2538 <tag-name><var>$query_string</var></tag-name> |
1752 запроса, формируемому из директив root или alias и URI запроса; | 2539 <tag-desc> |
1753 </listitem> | 2540 то же, что и <var>$args</var> |
1754 | 2541 </tag-desc> |
1755 <listitem> | 2542 |
1756 $request_body, эта переменная содержит тело запроса. | 2543 <tag-name><var>$realpath_root</var></tag-name> |
1757 Значение переменной появляется в location'ах, обрабатываемых директивами | 2544 <tag-desc> |
2545 значение директивы <link id="root"/> для текущего запроса, | |
2546 при этом все символические ссылки преобразованы в реальные путь | |
2547 </tag-desc> | |
2548 | |
2549 <tag-name><var>$remote_addr</var></tag-name> | |
2550 <tag-desc> | |
2551 адрес клиента | |
2552 </tag-desc> | |
2553 | |
2554 <tag-name><var>$remote_port</var></tag-name> | |
2555 <tag-desc> | |
2556 порт клиента | |
2557 </tag-desc> | |
2558 | |
2559 <tag-name><var>$remote_user</var></tag-name> | |
2560 <tag-desc> | |
2561 имя пользователя, использованное в Basic аутентификации | |
2562 </tag-desc> | |
2563 | |
2564 <tag-name><var>$request</var></tag-name> | |
2565 <tag-desc> | |
2566 оригинальная строка запроса целиком | |
2567 </tag-desc> | |
2568 | |
2569 <tag-name><var>$request_body</var></tag-name> | |
2570 <tag-desc> | |
2571 тело запроса | |
2572 <para> | |
2573 Значение переменной появляется в location'ах, обрабатываемых | |
2574 директивами | |
1758 <link doc="ngx_http_proxy_module.xml" id="proxy_pass"/> | 2575 <link doc="ngx_http_proxy_module.xml" id="proxy_pass"/> |
1759 и <link doc="ngx_http_fastcgi_module.xml" id="fastcgi_pass"/>. | 2576 и |
1760 </listitem> | 2577 <link doc="ngx_http_fastcgi_module.xml" id="fastcgi_pass"/>. |
1761 | 2578 </para> |
1762 <listitem> | 2579 </tag-desc> |
1763 $request_body_file, эта переменная равна имени временного файла, в котором | 2580 |
1764 хранится тело запроса. | 2581 <tag-name><var>$request_body_file</var></tag-name> |
1765 По завершению работы файл необходимо удалить. | 2582 <tag-desc> |
1766 Для того, чтобы тело запроса клиента всегда записывалось в файл, нужно | 2583 имя временного файла, в котором хранится тело запроса |
1767 указать <link doc="ngx_http_core_module.xml" id="client_body_in_file_only">client_body_in_file_only on</link>. | 2584 <para> |
1768 При передаче имени в проксированном запросе или в запросе к FastCGI-серверу | 2585 По завершению обработки файл необходимо удалить. |
1769 следует запретить передачу самого тела директивами | 2586 Для того, чтобы тело запроса всегда записывалось в файл, |
1770 "proxy_pass_request_body off" или | 2587 следует указать |
1771 "fastcgi_pass_request_body off" соответственно. | 2588 <link id="client_body_in_file_only">client_body_in_file_only on</link>. |
1772 </listitem> | 2589 При передаче имени временного файла в проксированном запросе |
1773 | 2590 или в запросе к FastCGI-серверу следует запретить передачу самого |
1774 <listitem> | 2591 тела директивами |
1775 $request_uri, эта переменная равна полному первоначальному URI вместе | 2592 <link doc="ngx_http_proxy_module.xml" id="proxy_pass_request_body"> |
1776 с аргументами; | 2593 proxy_pass_request_body off</link> |
1777 </listitem> | 2594 или |
1778 | 2595 <link doc="ngx_http_fastcgi_module.xml" id="fastcgi_pass_request_body"> |
1779 <listitem> | 2596 fastcgi_pass_request_body off</link> |
1780 $query_string, то же самое, что и $args; | 2597 соответственно. |
1781 </listitem> | 2598 </para> |
1782 | 2599 </tag-desc> |
1783 <listitem> | 2600 |
1784 $scheme, эта переменная равна схеме запроса — "http" или "https"; | 2601 <tag-name><var>$request_completion</var></tag-name> |
1785 </listitem> | 2602 <tag-desc> |
1786 | 2603 “<code>OK</code>” если запрос завершился, |
1787 <listitem> | 2604 либо пустая строка |
1788 $server_protocol, эта переменная равна протоколу запроса, | 2605 </tag-desc> |
1789 обычно это "HTTP/1.0" или "HTTP/1.1"; | 2606 |
1790 </listitem> | 2607 <tag-name><var>$request_filename</var></tag-name> |
1791 | 2608 <tag-desc> |
1792 <listitem> | 2609 путь к файлу для текущего запроса, формируемый из директив |
1793 $server_addr, эта переменная равна адресу сервера, на который пришёл запрос. | 2610 <link id="root"/> или <link id="alias"/> и URI запроса |
1794 Как правило, для получения значения этой переменной делается один системный | 2611 </tag-desc> |
1795 вызов. Для того, чтобы избежать системного вызова, нужно указывать | 2612 |
1796 адреса в директивах listen и использовать параметр bind; | 2613 <tag-name><var>$request_method</var></tag-name> |
1797 </listitem> | 2614 <tag-desc> |
1798 | 2615 метод запроса, обычно |
1799 <listitem> | 2616 “<code>GET</code>” или “<code>POST</code>” |
1800 $server_name, эта переменная равна имени сервера, на который пришёл запрос; | 2617 </tag-desc> |
1801 </listitem> | 2618 |
1802 | 2619 <tag-name><var>$request_uri</var></tag-name> |
1803 <listitem> | 2620 <tag-desc> |
1804 $server_port, эта переменная равна порту сервера, на который пришёл запрос; | 2621 оригинальный URI запроса целиком (с аргументами) |
1805 </listitem> | 2622 </tag-desc> |
1806 | 2623 |
1807 <listitem> | 2624 <tag-name><var>$scheme</var></tag-name> |
1808 $uri, эта переменная равна текущему URI в запросе, он | 2625 <tag-desc> |
1809 может отличаться от первоначального, например, при внутренних редиректах | 2626 схема запроса, “<code>http</code>” или “<code>https</code>” |
1810 или при использовании индексных файлов. | 2627 </tag-desc> |
1811 </listitem> | 2628 |
2629 <tag-name><var>$sent_http_</var><argument>имя</argument></tag-name> | |
2630 <tag-desc> | |
2631 поле <argument>имя</argument> заголовка ответа | |
2632 </tag-desc> | |
2633 | |
2634 <tag-name><var>$server_addr</var></tag-name> | |
2635 <tag-desc> | |
2636 адрес сервера, принявшего запрос | |
2637 <para> | |
2638 Получение значения этой переменной обычно требует одного системного вызова. | |
2639 Чтобы избежать системного вызова, в директивах <link id="listen"/> | |
2640 следует указывать адреса и использовать параметр <parameter>bind</parameter>. | |
2641 </para> | |
2642 </tag-desc> | |
2643 | |
2644 <tag-name><var>$server_name</var></tag-name> | |
2645 <tag-desc> | |
2646 имя сервера, принявшего запрос | |
2647 </tag-desc> | |
2648 | |
2649 <tag-name><var>$server_port</var></tag-name> | |
2650 <tag-desc> | |
2651 порт сервера, принявшего запрос | |
2652 </tag-desc> | |
2653 | |
2654 <tag-name><var>$server_protocol</var></tag-name> | |
2655 <tag-desc> | |
2656 протокол сервера, обычно | |
2657 “<code>HTTP/1.0</code>” | |
2658 или | |
2659 “<code>HTTP/1.1</code>” | |
2660 </tag-desc> | |
2661 | |
2662 <tag-name><var>$uri</var></tag-name> | |
2663 <tag-desc> | |
2664 текущий URI запроса | |
2665 <para> | |
2666 Он может отличаться от первоначального, например, при внутренних | |
2667 перенаправлениях или при использовании индексных файлов. | |
2668 </para> | |
2669 </tag-desc> | |
1812 | 2670 |
1813 </list> | 2671 </list> |
1814 </para> | 2672 </para> |
1815 | 2673 |
1816 </section> | 2674 </section> |