comparison xml/ru/docs/http/ngx_http_proxy_module.xml @ 273:44ab4026d9f5

Fixed markup and spelling, sorted directives, added missing links, changed some wording.
author Ruslan Ermilov <ru@nginx.com>
date Mon, 26 Dec 2011 11:37:06 +0000
parents 4c6d2c614d2c
children fa1213cffc34
comparison
equal deleted inserted replaced
272:5d87f76cdfab 273:44ab4026d9f5
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_proxy_module" 5 <module name="Модуль ngx_http_proxy_module"
6 link="/ru/docs/http/ngx_http_proxy_module.html" 6 link="/ru/docs/http/ngx_http_proxy_module.html"
7 lang="ru"> 7 lang="ru">
8 8
9 <section id="summary"> 9 <section id="summary">
10 10
11 <para> 11 <para>
12 Модуль ngx_http_proxy_module позволяет передавать запросы другому серверу. 12 Модуль <literal>ngx_http_proxy_module</literal> позволяет передавать
13 запросы другому серверу.
13 </para> 14 </para>
14 15
15 </section> 16 </section>
16 17
17 18
18 <section name="Пример конфигурации" id="example"> 19 <section id="example" name="Пример конфигурации">
19 20
20 <para> 21 <para>
21 <example> 22 <example>
22 location / { 23 location / {
23 proxy_pass http://localhost:8000; 24 proxy_pass http://localhost:8000;
24 proxy_set_header Host $host; 25 proxy_set_header Host $host;
25 proxy_set_header X-Real-IP $remote_addr; 26 proxy_set_header X-Real-IP $remote_addr;
26 } 27 }
27 </example> 28 </example>
28 </para> 29 </para>
29 30
30 </section> 31 </section>
31 32
32 33
33 <section name="Директивы" id="directives"> 34 <section id="directives" name="Директивы">
34 35
35 <directive name="proxy_buffer_size"> 36 <directive name="proxy_buffer_size">
36 <syntax><value>размер</value></syntax> 37 <syntax><value>размер</value></syntax>
37 <default>4k/8k</default> 38 <default>4k|8k</default>
38 <context>http, server, location</context> 39 <context>http</context>
39 40 <context>server</context>
40 <para> 41 <context>location</context>
41 Директива задаёт размер буфера, в который будет читаться 42
43 <para>
44 Задаёт размер буфера, в который будет читаться
42 первая часть ответа, получаемого от проксируемого сервера. 45 первая часть ответа, получаемого от проксируемого сервера.
43 В этой части ответа находится, как правило, небольшой заголовок ответа. 46 В этой части ответа находится, как правило, небольшой заголовок ответа.
44 По умолчанию размер буфера равен размеру одного буфера в директиве 47 По умолчанию размер буфера равен размеру одного буфера в директиве
45 <link id="proxy_buffers"/>, однако его можно сделать меньше. 48 <link id="proxy_buffers"/>, однако его можно сделать меньше.
46 </para> 49 </para>
49 52
50 53
51 <directive name="proxy_buffering"> 54 <directive name="proxy_buffering">
52 <syntax><literal>on</literal> | <literal>off</literal></syntax> 55 <syntax><literal>on</literal> | <literal>off</literal></syntax>
53 <default>on</default> 56 <default>on</default>
54 <context>http, server, location</context> 57 <context>http</context>
55 58 <context>server</context>
56 <para> 59 <context>location</context>
57 Директива разрешает использовать буферизацию ответа проксируемого сервера. 60
61 <para>
62 Разрешает или запрещает использовать буферизацию ответа проксируемого сервера.
63 </para>
64
65 <para>
58 Если буферизация включена, то nginx принимает ответ проксируемого сервера 66 Если буферизация включена, то nginx принимает ответ проксируемого сервера
59 как можно быстрее, сохраняя его в буфера, заданные директивами 67 как можно быстрее, сохраняя его в буферы, заданные директивами
60 <link id="proxy_buffer_size"/> и <link id="proxy_buffers"/>. 68 <link id="proxy_buffer_size"/> и <link id="proxy_buffers"/>.
61 Если ответ не помещается полностью в память, то его часть записывается на диск. 69 Если ответ не вмещается целиком в память, то его часть записывается на диск.
62 </para> 70 </para>
63 71
64 <para> 72 <para>
65 Если буферизация выключена, то ответ синхронно передаётся клиенту сразу же 73 Если буферизация выключена, то ответ синхронно передаётся клиенту сразу же
66 по мере его поступления. nginx не пытается считать весь ответ проксируемого 74 по мере его поступления.
67 сервера, максимальный размер данных, который nginx может принять от сервера 75 nginx не пытается считать весь ответ проксируемого сервера.
76 Максимальный размер данных, который nginx может принять от сервера,
68 задаётся директивой <link id="proxy_buffer_size"/>. 77 задаётся директивой <link id="proxy_buffer_size"/>.
69 </para> 78 </para>
70 79
71 </directive> 80 </directive>
72 81
73 82
74 <directive name="proxy_buffers"> 83 <directive name="proxy_buffers">
75 <syntax><value>число</value> <value>размер</value></syntax> 84 <syntax><value>число</value> <value>размер</value></syntax>
76 <default>8 4k/8k</default> 85 <default>8 4k|8k</default>
77 <context>http, server, location</context> 86 <context>http</context>
78 87 <context>server</context>
79 <para> 88 <context>location</context>
80 Директива задаёт число и размер буферов для одного соединения, 89
90 <para>
91 Задаёт число и размер буферов для одного соединения,
81 в которые будет читаться ответ, получаемый от проксируемого сервера. 92 в которые будет читаться ответ, получаемый от проксируемого сервера.
82 По умолчанию размер одного буфера равен размеру страницы, в зависимости 93 По умолчанию размер одного буфера равен размеру страницы.
83 от платформы это или 4K, или 8K. 94 В зависимости от платформы это или 4K, или 8K.
84 </para> 95 </para>
85 96
86 </directive> 97 </directive>
87 98
88 99
89 <directive name="proxy_cache"> 100 <directive name="proxy_cache">
90 <syntax><value>зона</value> | <literal>off</literal></syntax> 101 <syntax><value>зона</value> | <literal>off</literal></syntax>
91 <default>off</default> 102 <default>off</default>
92 <context>http, server, location</context> 103 <context>http</context>
93 104 <context>server</context>
94 <para> 105 <context>location</context>
95 Директива задаёт зону для кэширования. 106
107 <para>
108 Задаёт зону для кэширования.
96 Одна и та же зона может использоваться в нескольких местах. 109 Одна и та же зона может использоваться в нескольких местах.
97 Параметр "off" запрещает кэширование, унаследованное с предыдущего 110 Параметр <literal>off</literal> запрещает кэширование, унаследованное
98 уровня конфигурации. 111 с предыдущего уровня конфигурации.
99 </para> 112 </para>
100 113
101 </directive> 114 </directive>
102 115
103 116
104 <directive name="proxy_cache_bypass"> 117 <directive name="proxy_cache_bypass">
105 <syntax><value>строка</value> ...</syntax> 118 <syntax><value>строка</value> ...</syntax>
106 <default/> 119 <default/>
107 <context>http, server, location</context> 120 <context>http</context>
108 121 <context>server</context>
109 <para> 122 <context>location</context>
110 Директива задаёт условия, при которых ответ не будет браться из кэша. 123
111 Если значение хотя бы одной из строк переменных не пустое и не равно "0", 124 <para>
125 Задаёт условия, при которых ответ не будет браться из кэша.
126 Если значение хотя бы одного из строковых параметров непустое и не равно “0”,
112 то ответ не берётся из кэша: 127 то ответ не берётся из кэша:
113 <example> 128 <example>
114 proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment; 129 proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment;
115 proxy_cache_bypass $http_pragma $http_authorization; 130 proxy_cache_bypass $http_pragma $http_authorization;
116 </example> 131 </example>
117 Можно использовать совместно с директивой <link id="proxy_no_cache"/>. 132 Можно использовать совместно с директивой <link id="proxy_no_cache"/>.
118 </para> 133 </para>
119 134
120 </directive> 135 </directive>
121 136
122 137
123 <directive name="proxy_cache_key"> 138 <directive name="proxy_cache_key">
124 <syntax><value>строка</value></syntax> 139 <syntax><value>строка</value></syntax>
125 <default>$scheme$proxy_host$request_uri</default> 140 <default>$scheme$proxy_host$request_uri</default>
126 <context>http, server, location</context> 141 <context>http</context>
127 142 <context>server</context>
128 <para> 143 <context>location</context>
129 Директива задаёт ключ для кэширования, например, 144
130 <example> 145 <para>
131 proxy_cache_key "$host$request_uri $cookie_user"; 146 Задаёт ключ для кэширования, например,
147 <example>
148 proxy_cache_key "$host$request_uri $cookie_user";
132 </example> 149 </example>
133 По умолчанию значение директивы близко к строке 150 По умолчанию значение директивы близко к строке
134 <example> 151 <example>
135 proxy_cache_key $scheme$proxy_host$uri$is_args$args; 152 proxy_cache_key $scheme$proxy_host$uri$is_args$args;
136 </example> 153 </example>
154 </para>
155
156 </directive>
157
158
159 <directive name="proxy_cache_min_uses">
160 <syntax><value>число</value></syntax>
161 <default>1</default>
162 <context>http</context>
163 <context>server</context>
164 <context>location</context>
165
166 <para>
167 Задаёт число запросов, после которого ответ будет закэширован.
137 </para> 168 </para>
138 169
139 </directive> 170 </directive>
140 171
141 172
148 [<literal>max_size</literal>=<value>размер</value>]</syntax> 179 [<literal>max_size</literal>=<value>размер</value>]</syntax>
149 <default/> 180 <default/>
150 <context>http</context> 181 <context>http</context>
151 182
152 <para> 183 <para>
153 Директива задаёт путь и другие параметры кэша. Данные кэша хранятся в файлах. 184 Задаёт путь и другие параметры кэша.
154 Ключом и именем файла в кэше является результат функции md5 от 185 Данные кэша хранятся в файлах.
155 проксированного URL. Параметр levels задаёт уровни иерархии кэша, 186 Ключом и именем файла в кэше является результат функции MD5
187 от проксированного URL.
188 Параметр <literal>levels</literal> задаёт уровни иерархии кэша,
156 например, при использовании 189 например, при использовании
157 <example> 190 <example>
158 proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m; 191 proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;
159 </example> 192 </example>
160 имена файлов в кэше будут такого вида: 193 имена файлов в кэше будут такого вида:
161 <example> 194 <example>
162 /data/nginx/cache/<emphasis>c/29</emphasis>/b7f54b2df7773722d382f4809d650<emphasis>29c</emphasis> 195 /data/nginx/cache/<emphasis>c/29</emphasis>/b7f54b2df7773722d382f4809d650<emphasis>29c</emphasis>
163 </example> 196 </example>
174 <link id="proxy_temp_path"/> для данного location. 207 <link id="proxy_temp_path"/> для данного location.
175 </para> 208 </para>
176 209
177 <para> 210 <para>
178 Кроме того, все активные ключи и информация о данных хранятся в разделяемой 211 Кроме того, все активные ключи и информация о данных хранятся в разделяемой
179 памяти — зоне, имя и размер которой задаётся параметром keys_zone. 212 памяти — зоне, имя и размер которой задаётся параметром
180 Если к данным кэша не обращются в течение времени, заданного параметром 213 <literal>keys_zone</literal>.
181 inactive, то данные удаляются, независимо от их свежести. 214 Если к данным кэша не обращаются в течение времени, заданного параметром
182 По умолчанию inactive равен 10 минутам. 215 <literal>inactive</literal>, то данные удаляются, независимо от их свежести.
183 </para> 216 По умолчанию <literal>inactive</literal> равен 10 минутам.
184 217 </para>
185 <para> 218
186 Специальный процесс "cache manager" следит за максимальным размером кэша, 219 <para>
187 заданным параметром max_size, и при превышении его размеров удаляет 220 Специальный процесс “cache manager” следит за максимальным размером кэша,
188 самые невостребованные данные. 221 заданным параметром <literal>max_size</literal>, и при превышении
189 </para> 222 его размеров удаляет самые невостребованные данные.
190
191 </directive>
192
193
194 <directive name="proxy_cache_min_uses">
195 <syntax><value>число</value></syntax>
196 <default>1</default>
197 <context>http, server, location</context>
198
199 <para>
200 Директива задаёт число запросов, после которого ответ будет
201 закэширован.
202 </para>
203
204 </directive>
205
206
207 <directive name="proxy_cache_valid">
208 <syntax><value>ответ</value> ... <value>время</value></syntax>
209 <default/>
210 <context>http, server, location</context>
211
212 <para>
213 Директива задаёт время кэширования для разных ответов.
214 Например, директивы
215 <example>
216 proxy_cache_valid 200 302 10m;
217 proxy_cache_valid 404 1m;
218 </example>
219 задают время кэширования 10 минут для ответов 200 и 302,
220 и 1 минуту для ответов 404.
221 </para>
222
223 <para>
224 Если указано только время кэширования,
225 <example>
226 proxy_cache_valid 5m;
227 </example>
228 то кэшируются только ответы 200, 301 и 302.
229 </para>
230
231 <para>
232 Кроме того, может кэшировать любые ответы с помощью параметра "any":
233 <example>
234 proxy_cache_valid 200 302 10m;
235 proxy_cache_valid 301 1h;
236 proxy_cache_valid any 1m;
237 </example>
238 </para> 223 </para>
239 224
240 </directive> 225 </directive>
241 226
242 227
252 <literal>http_504</literal> | 237 <literal>http_504</literal> |
253 <literal>http_404</literal> | 238 <literal>http_404</literal> |
254 <literal>off</literal> 239 <literal>off</literal>
255 ...</syntax> 240 ...</syntax>
256 <default>off</default> 241 <default>off</default>
257 <context>http, server, location</context> 242 <context>http</context>
258 243 <context>server</context>
259 <para> 244 <context>location</context>
260 Директива определяет, в каких случаях можно использовать 245
246 <para>
247 Определяет, в каких случаях можно использовать
261 устаревший закэшированный ответ, если при работе с проксированным 248 устаревший закэшированный ответ, если при работе с проксированным
262 сервером возникла ошибка. Параметры директивы совпадают с параметрами 249 сервером возникла ошибка. Параметры директивы совпадают с параметрами
263 директивы <link id="proxy_next_upstream"/>. 250 директивы <link id="proxy_next_upstream"/>.
264 И, кроме того, есть параметр updating, которой разрешает использовать 251 Кроме того, дополнительный параметр <literal>updating</literal>
265 устаревший закэшированный ответ, если на данный момент он уже обновляется. 252 разрешает использовать устаревший закэшированный ответ,
253 если на данный момент он уже обновляется.
254 </para>
255
256 </directive>
257
258
259 <directive name="proxy_cache_valid">
260 <syntax>[<value>код</value> ...] <value>время</value></syntax>
261 <default/>
262 <context>http</context>
263 <context>server</context>
264 <context>location</context>
265
266 <para>
267 Задаёт время кэширования для разных кодов ответа.
268 Например, директивы
269 <example>
270 proxy_cache_valid 200 302 10m;
271 proxy_cache_valid 404 1m;
272 </example>
273 задают время кэширования 10 минут для ответов с кодами 200 и 302,
274 и 1 минуту для ответов с кодом 404.
275 </para>
276
277 <para>
278 Если указано только <value>время</value> кэширования,
279 <example>
280 proxy_cache_valid 5m;
281 </example>
282 то кэшируются только ответы 200, 301 и 302.
283 </para>
284
285 <para>
286 Кроме того, можно кэшировать любые ответы с помощью параметра
287 <literal>any</literal>:
288 <example>
289 proxy_cache_valid 200 302 10m;
290 proxy_cache_valid 301 1h;
291 proxy_cache_valid any 1m;
292 </example>
266 </para> 293 </para>
267 294
268 </directive> 295 </directive>
269 296
270 297
271 <directive name="proxy_connect_timeout"> 298 <directive name="proxy_connect_timeout">
272 <syntax><value>время</value></syntax> 299 <syntax><value>время</value></syntax>
273 <default>60</default> 300 <default>60s</default>
274 <context>http, server, location</context> 301 <context>http</context>
275 302 <context>server</context>
276 <para> 303 <context>location</context>
277 Директива задаёт таймаут для соединения с проксированным сервером. 304
305 <para>
306 Задаёт таймаут для соединения с проксированным сервером.
278 Необходимо иметь в виду, что этот таймаут не может быть больше 75 секунд. 307 Необходимо иметь в виду, что этот таймаут не может быть больше 75 секунд.
279 </para> 308 </para>
280 309
281 </directive> 310 </directive>
282 311
283 312
284 <directive name="proxy_hide_header"> 313 <directive name="proxy_hide_header">
285 <syntax><value>имя</value></syntax> 314 <syntax><value>имя</value></syntax>
286 <default/> 315 <default/>
287 <context>http, server, location</context> 316 <context>http</context>
288 317 <context>server</context>
289 <para> 318 <context>location</context>
290 nginx не передаёт клиенту строки заголовка "Date", "Server", "X-Pad" и 319
291 "X-Accel-..." из ответа проксированного сервера. 320 <para>
292 Директива proxy_hide_header задаёт дополнительные строки. 321 nginx не передаёт клиенту поля заголовка <header>Date</header>,
293 Если же строки нужно наоброт разрешить, то нужно воспользоваться 322 <header>Server</header>, <header>X-Pad</header> и
323 <header>X-Accel-...</header> из ответа проксированного сервера.
324 Директива <literal>proxy_hide_header</literal> задаёт дополнительные поля.
325 Если же поля нужно напротив разрешить, следует воспользоваться
294 директивой <link id="proxy_pass_header"/>. 326 директивой <link id="proxy_pass_header"/>.
295 </para> 327 </para>
296 328
297 </directive> 329 </directive>
298 330
299 331
300 <directive name="proxy_ignore_client_abort"> 332 <directive name="proxy_ignore_client_abort">
301 <syntax><literal>on</literal> | <literal>off</literal></syntax> 333 <syntax><literal>on</literal> | <literal>off</literal></syntax>
302 <default>off</default> 334 <default>off</default>
303 <context>http, server, location</context> 335 <context>http</context>
304 336 <context>server</context>
305 <para> 337 <context>location</context>
306 Директива определяет, закрывать ли соединение с проксированным сервером 338
339 <para>
340 Определяет, закрывать ли соединение с проксированным сервером
307 в случае, если клиент закрыл соединение, не дождавшись ответа. 341 в случае, если клиент закрыл соединение, не дождавшись ответа.
308 </para> 342 </para>
309 343
310 </directive> 344 </directive>
311 345
312 346
313 <directive name="proxy_ignore_headers"> 347 <directive name="proxy_ignore_headers">
314 <syntax><value>имя</value> ...</syntax> 348 <syntax><value>поле</value> ...</syntax>
315 <default/> 349 <default/>
316 <context>http, server, location</context> 350 <context>http</context>
317 351 <context>server</context>
318 <para> 352 <context>location</context>
319 Директива proxy_ignore_headers запрещает обработку некоторых 353
320 строк заголовка из ответа проксированного сервера. 354 <para>
321 В директиве можно указать строки "X-Accel-Redirect", "X-Accel-Expires", 355 Запрещает обработку некоторых полей заголовка из ответа проксированного сервера.
322 "X-Accel-Limit-Rate" (1.1.6), "X-Accel-Buffering" (1.1.6), 356 В директиве можно указать поля <header>X-Accel-Redirect</header>,
323 "X-Accel-Charset" (1.1.6), "Expires", "Cache-Control" и "Set-Cookie" (0.8.44). 357 <header>X-Accel-Expires</header>, <header>X-Accel-Limit-Rate</header> (1.1.6),
358 <header>X-Accel-Buffering</header> (1.1.6),
359 <header>X-Accel-Charset</header> (1.1.6), <header>Expires</header>,
360 <header>Cache-Control</header> и <header>Set-Cookie</header> (0.8.44).
324 </para> 361 </para>
325 362
326 </directive> 363 </directive>
327 364
328 365
329 <directive name="proxy_intercept_errors"> 366 <directive name="proxy_intercept_errors">
330 <syntax><literal>on</literal> | <literal>off</literal></syntax> 367 <syntax><literal>on</literal> | <literal>off</literal></syntax>
331 <default>off</default> 368 <default>off</default>
332 <context>http, server, location</context> 369 <context>http</context>
333 370 <context>server</context>
334 <para> 371 <context>location</context>
335 Директива определяет, передавать ли клиенту проксированные ответы с кодом 372
336 больше или равные 400 или же перенаправлять их на обработку nginx'у с помощью 373 <para>
337 директивы error_page. 374 Определяет, передавать ли клиенту проксированные ответы с кодом
375 больше либо равным 400, или же перенаправлять их на обработку nginx'у с помощью
376 директивы <link doc="ngx_http_core_module.xml" id="error_page"/>.
338 </para> 377 </para>
339 378
340 </directive> 379 </directive>
341 380
342 381
351 <literal>http_504</literal> | 390 <literal>http_504</literal> |
352 <literal>http_404</literal> | 391 <literal>http_404</literal> |
353 <literal>off</literal> 392 <literal>off</literal>
354 ...</syntax> 393 ...</syntax>
355 <default>error timeout</default> 394 <default>error timeout</default>
356 <context>http, server, location</context> 395 <context>http</context>
357 396 <context>server</context>
358 <para> 397 <context>location</context>
359 Директива определяет, в каких случаях запрос будет передан следующему серверу: 398
360 <list type="bullet"> 399 <para>
361 400 Определяет, в каких случаях запрос будет передан следующему серверу:
362 <listitem> 401 <list type="tag">
363 error — произшла ошибка соединения с сервером, передачи ему запроса или 402
364 чтения заголовка ответа сервера; 403 <tag-name><literal>error</literal></tag-name>
365 </listitem> 404 <tag-desc>произошла ошибка соединения с сервером, передачи ему запроса или
366 405 чтения заголовка ответа сервера;</tag-desc>
367 <listitem> 406
368 timeout — произошёл таймаут во время соединения с сервером, 407 <tag-name><literal>timeout</literal></tag-name>
369 передачи ему запроса или чтения заголовка ответа сервера; 408 <tag-desc>произошёл таймаут во время соединения с сервером,
370 </listitem> 409 передачи ему запроса или чтения заголовка ответа сервера;</tag-desc>
371 410
372 <listitem> 411 <tag-name><literal>invalid_header</literal></tag-name>
373 invalid_header — сервер вернул пустой или неверный ответ; 412 <tag-desc>сервер вернул пустой или неверный ответ;</tag-desc>
374 </listitem> 413
375 414 <tag-name><literal>http_500</literal></tag-name>
376 <listitem> 415 <tag-desc>сервер вернул ответ с кодом 500;</tag-desc>
377 http_500 — сервер вернул ответ с кодом 500; 416
378 </listitem> 417 <tag-name><literal>http_502</literal></tag-name>
379 418 <tag-desc>сервер вернул ответ с кодом 502;</tag-desc>
380 <listitem> 419
381 http_502 — сервер вернул ответ с кодом 502; 420 <tag-name><literal>http_503</literal></tag-name>
382 </listitem> 421 <tag-desc>сервер вернул ответ с кодом 503;</tag-desc>
383 422
384 <listitem> 423 <tag-name><literal>http_504</literal></tag-name>
385 http_503 — сервер вернул ответ с кодом 503; 424 <tag-desc>сервер вернул ответ с кодом 504;</tag-desc>
386 </listitem> 425
387 426 <tag-name><literal>http_404</literal></tag-name>
388 <listitem> 427 <tag-desc>сервер вернул ответ с кодом 404;</tag-desc>
389 http_504 — сервер вернул ответ с кодом 504; 428
390 </listitem> 429 <tag-name><literal>off</literal></tag-name>
391 430 <tag-desc>запрещает передачу запроса следующему серверу.</tag-desc>
392 <listitem>
393 http_404 — сервер вернул ответ с кодом 404;
394 </listitem>
395
396 <listitem>
397 off — запрещает передачу запроса следующему серверу;
398 </listitem>
399 431
400 </list> 432 </list>
401 </para> 433 </para>
402 434
403 <para> 435 <para>
411 443
412 444
413 <directive name="proxy_no_cache"> 445 <directive name="proxy_no_cache">
414 <syntax><value>строка</value> ...</syntax> 446 <syntax><value>строка</value> ...</syntax>
415 <default/> 447 <default/>
416 <context>http, server, location</context> 448 <context>http</context>
417 449 <context>server</context>
418 <para> 450 <context>location</context>
419 Директива задаёт условия, при которых ответ не будет сохраняться в кэш. 451
420 Если значение хотя бы одной из строк переменных не пустое и не равно "0", 452 <para>
453 Задаёт условия, при которых ответ не будет сохраняться в кэш.
454 Если значение хотя бы одного из строковых параметров непустое и не равно “0”,
421 то ответ не будет сохранён: 455 то ответ не будет сохранён:
422 <example> 456 <example>
423 proxy_no_cache $cookie_nocache $arg_nocache$arg_comment; 457 proxy_no_cache $cookie_nocache $arg_nocache$arg_comment;
424 proxy_no_cache $http_pragma $http_authorization; 458 proxy_no_cache $http_pragma $http_authorization;
425 </example> 459 </example>
426 Можно использовать совместно с директивой <link id="proxy_cache_bypass"/>. 460 Можно использовать совместно с директивой <link id="proxy_cache_bypass"/>.
427 </para> 461 </para>
428 462
429 </directive> 463 </directive>
430 464
431 465
432 <directive name="proxy_pass"> 466 <directive name="proxy_pass">
433 <syntax><value>URL</value></syntax> 467 <syntax><value>URL</value></syntax>
434 <default/> 468 <default/>
435 <context>location, if в location, limit_except</context> 469 <context>location</context>
436 470 <context>if в location</context>
437 <para> 471 <context>limit_except</context>
438 Директива задаёт адрес проксируемоего сервера и URI, на который 472
473 <para>
474 Задаёт адрес проксируемоего сервера и URI, на который
439 будет отображаться location. 475 будет отображаться location.
440 Адрес может быть указан в виде доменного имени или адреса и порта, например, 476 Адрес может быть указан в виде доменного имени или адреса и порта, например,
441 <example> 477 <example>
442 proxy_pass http://localhost:8000/uri/; 478 proxy_pass http://localhost:8000/uri/;
443 </example> 479 </example>
444 или в виде пути unix сокета: 480 или в виде пути UNIX-сокета:
445 <example> 481 <example>
446 proxy_pass http://unix:/tmp/backend.socket:/uri/; 482 proxy_pass http://unix:/tmp/backend.socket:/uri/;
447 </example> 483 </example>
448 путь указан после слова unix и заключён между двумя двоеточиями. 484 путь указан после слова “<literal>unix</literal>”
449 </para> 485 и заключён между двумя двоеточиями.
450 486 </para>
451 <para> 487
452 Если доменное имя резолвится в несколько адресов, то все они будут 488 <para>
453 использоваться в режиме round-robin. 489 Если доменному имени соответствует несколько адресов, то все они будут
454 И кроме того, адрес можно задать 490 использоваться по очереди (round-robin).
491 И, кроме того, адрес можно задать
455 <link doc="ngx_http_upstream_module.xml">группой серверов</link>. 492 <link doc="ngx_http_upstream_module.xml">группой серверов</link>.
456 </para> 493 </para>
457 494
458 <para> 495 <para>
459 При передаче запроса серверу часть URI, соответствующая location, 496 При передаче запроса серверу часть URI, соответствующая location,
460 заменяется на URI, указанный в директиве proxy_pass. 497 заменяется на URI, указанный в директиве <literal>proxy_pass</literal>.
461 Но из этого правила есть два исключения, в которых нельзя определить 498 Но из этого правила есть два исключения, в которых нельзя определить
462 заменяемый location: 499 заменяемый location:
463 <list type="bullet"> 500 <list type="bullet">
464 501
465 <listitem> 502 <listitem>
466 если location задан регулярным выражением; 503 если location задан регулярным выражением;
467 </listitem> 504 </listitem>
468 505
469 <listitem> 506 <listitem>
470 если внутри проксируемого location с помощью директивы rewrite изменяется 507 если внутри проксируемого location с помощью директивы
471 URI и именно с этой конфигурацией будет обрабатываться запрос (break): 508 <link doc="ngx_http_rewrite_module.xml" id="rewrite"/> изменяется
472 <example> 509 URI, и именно с этой конфигурацией будет обрабатываться запрос
473 location /name/ { 510 (<literal>break</literal>):
474 rewrite /name/([^/]+) /users?name=$1 break; 511 <example>
475 proxy_pass http://127.0.0.1; 512 location /name/ {
513 rewrite /name/([^/]+) /users?name=$1 break;
514 proxy_pass http://127.0.0.1;
476 } 515 }
477 </example> 516 </example>
478 Для этих случаев URI передаётся без отображения. 517 Для этих случаев URI передаётся без отображения.
479 </listitem> 518 </listitem>
480 519
481 </list> 520 </list>
482 </para> 521 </para>
483 522
484 <para> 523 <para>
485 Кроме того, можно указать, чтобы URI запроса передавалось в том же виде, 524 Кроме того, можно указать, чтобы URI запроса передавался в том же виде,
486 как его прислал клиент, а не в в обработанном виде. 525 в каком его прислал клиент, а не в обработанном виде.
487 Во время обработки 526 Во время обработки
488 <list type="bullet"> 527 <list type="bullet">
489 528
490 <listitem> 529 <listitem>
491 два и более слэшей преобразуются в один слэш: "//" — "/"; 530 два и более слэшей заменяются на один: “//” — “/”;
492 </listitem> 531 </listitem>
493 532
494 <listitem> 533 <listitem>
495 убираются ссылки на текущий каталог: "/./" — "/"; 534 убираются ссылки на текущий каталог: “/./” — “/”;
496 </listitem> 535 </listitem>
497 536
498 <listitem> 537 <listitem>
499 убираются ссылки на предыдущий каталог: "/dir/../" — "/". 538 убираются ссылки на предыдущий каталог: “/dir/../” — “/”.
500 </listitem> 539 </listitem>
501 540
502 </list> 541 </list>
503 </para> 542 </para>
504 543
505 <para> 544 <para>
506 Если на сервер нужно передать URI в необработанном виде, то для этого 545 Если на сервер нужно передать URI в необработанном виде, то для этого
507 в директиве proxy_pass нужно указать URL сервера без URI: 546 в директиве <literal>proxy_pass</literal> нужно указать URL сервера без URI:
508 <example> 547 <example>
509 location /some/path/ { 548 location /some/path/ {
510 proxy_pass http://127.0.0.1; 549 proxy_pass http://127.0.0.1;
511 } 550 }
512 </example> 551 </example>
513 </para> 552 </para>
514 553
515 <para> 554 <para>
516 Имя сервера, его порт и передаваемый URI можно также полностью задать 555 Имя сервера, его порт и передаваемый URI можно также полностью задать
517 в помощью переменных: 556 с помощью переменных:
518 <example> 557 <example>
519 proxy_pass http://$host$uri; 558 proxy_pass http://$host$uri;
520 </example> 559 </example>
521 или так: 560 или так:
522 <example> 561 <example>
523 proxy_pass $request; 562 proxy_pass $request;
524 </example> 563 </example>
525 </para> 564 </para>
526 565
527 <para> 566 <para>
528 В этом случае имя сервера ищется среди описанных 567 В этом случае имя сервера ищется среди описанных
529 <link doc="ngx_http_upstream_module.xml">групп серверов</link> 568 <link doc="ngx_http_upstream_module.xml">групп серверов</link>
530 и если не найдено, то определяется с помощью 569 и если не найдено, то определяется с помощью
531 <link doc="ngx_http_core_module.xml" id="resolver">resolver'а</link>. 570 <link doc="ngx_http_core_module.xml" id="resolver"/>'а.
532 </para> 571 </para>
533 572
534 </directive> 573 </directive>
535 574
536 575
537 <directive name="proxy_pass_header"> 576 <directive name="proxy_pass_header">
538 <syntax><value>имя</value></syntax> 577 <syntax><value>поле</value></syntax>
539 <default/> 578 <default/>
540 <context>http, server, location</context> 579 <context>http</context>
541 580 <context>server</context>
542 <para> 581 <context>location</context>
543 Директива разрешает передавать от проксируемого сервера клиенту 582
544 запрещённые для передачи строки. 583 <para>
584 Разрешает передавать от проксируемого сервера клиенту
585 <link id="proxy_hide_header">запрещённые для передачи</link> поля заголовка.
586 </para>
587
588 </directive>
589
590
591 <directive name="proxy_read_timeout">
592 <syntax><value>время</value></syntax>
593 <default>60s</default>
594 <context>http</context>
595 <context>server</context>
596 <context>location</context>
597
598 <para>
599 Задаёт таймаут при чтении ответа проксированного сервера.
600 Таймаут устанавливается не на всю передачу ответа,
601 а только между двумя операциями чтения.
602 Если по истечении этого времени проксируемый сервер ничего не передаст,
603 то nginx закрывает соединение.
545 </para> 604 </para>
546 605
547 </directive> 606 </directive>
548 607
549 608
550 <directive name="proxy_redirect"> 609 <directive name="proxy_redirect">
551 <syntax> 610 <syntax><literal>default</literal></syntax>
552 <literal>default</literal> | 611 <syntax><literal>off</literal></syntax>
553 <literal>off</literal> | 612 <syntax><value>перенаправление</value> <value>замена</value></syntax>
554 <value>перенаправление</value> <value>замена</value></syntax>
555 <default>default</default> 613 <default>default</default>
556 <context>http</context> 614 <context>http</context>
557 <context>server</context> 615 <context>server</context>
558 <context>location</context> 616 <context>location</context>
559 617
560 <para> 618 <para>
561 Директива задаёт текст, который нужно изменить в строках заголовка 619 Задаёт текст, который нужно изменить в полях заголовка
562 <header>Location</header> и <header>Refresh</header> в ответе 620 <header>Location</header> и <header>Refresh</header> в ответе
563 проксируемого сервера. 621 проксируемого сервера.
564 Предположим, проксируемый сервер вернул строку 622 Предположим, проксируемый сервер вернул поле заголовка
565 <header>Location: http://localhost:8000/two/some/uri/</header>. 623 “<literal>Location: http://localhost:8000/two/some/uri/</literal>”.
566 Директива 624 Директива
567 <example> 625 <example>
568 proxy_redirect http://localhost:8000/two/ http://frontend/one/; 626 proxy_redirect http://localhost:8000/two/ http://frontend/one/;
569 </example> 627 </example>
570 перепишет эту строку в виде 628 перепишет эту строку в виде
571 <header>Location: http://frontend/one/some/uri/</header>. 629 “<literal>Location: http://frontend/one/some/uri/</literal>”.
572 </para> 630 </para>
573 631
574 <para> 632 <para>
575 В заменяемой строке можно не указывать имя сервера: 633 В заменяемой строке можно не указывать имя сервера:
576 <example> 634 <example>
578 </example> 636 </example>
579 тогда будет подставлено основное имя сервера и порт, если он отличен от 80. 637 тогда будет подставлено основное имя сервера и порт, если он отличен от 80.
580 </para> 638 </para>
581 639
582 <para> 640 <para>
583 Изменение по умолчанию, задаваемое значением <literal>default</literal>, использует 641 Изменение по умолчанию, задаваемое значением <literal>default</literal>,
584 параметры директив <link doc="ngx_http_core_module.xml" id="location"/> и 642 использует параметры директив
643 <link doc="ngx_http_core_module.xml" id="location"/> и
585 <link id="proxy_pass"/>. 644 <link id="proxy_pass"/>.
586 Поэтому две нижеприведённые конфигурации одинаковы: 645 Поэтому две нижеприведённые конфигурации одинаковы:
587 <example> 646 <example>
588 location /one/ { 647 location /one/ {
589 proxy_pass http://upstream:port/two/; 648 proxy_pass http://upstream:port/two/;
657 </para> 716 </para>
658 717
659 </directive> 718 </directive>
660 719
661 720
662 <directive name="proxy_read_timeout">
663 <syntax><value>время</value></syntax>
664 <default>60</default>
665 <context>http, server, location</context>
666
667 <para>
668 Директива задаёт таймаут при чтении ответа проксированного сервера.
669 Таймаут устанавливается не на всю передачу ответа,
670 а только между двумя операциями чтения.
671 Если по истечении этого времени проксируемый сервер ничего не передаст,
672 то nginx закрывает соединение.
673 </para>
674
675 </directive>
676
677
678 <directive name="proxy_send_timeout"> 721 <directive name="proxy_send_timeout">
679 <syntax><value>время</value></syntax> 722 <syntax><value>время</value></syntax>
680 <default>60</default> 723 <default>60</default>
681 <context>http, server, location</context> 724 <context>http</context>
682 725 <context>server</context>
683 <para> 726 <context>location</context>
684 Директива задаёт таймаут при передаче запроса проксированному серверу. 727
728 <para>
729 Задаёт таймаут при передаче запроса проксированному серверу.
685 Таймаут устанавливается не на всю передачу запроса, 730 Таймаут устанавливается не на всю передачу запроса,
686 а только между двумя операциями записи. 731 а только между двумя операциями записи.
687 Если по истечении этого времени проксируемый сервер не примет новых данных, 732 Если по истечении этого времени проксируемый сервер не примет новых данных,
688 то nginx закрывает соединение. 733 то nginx закрывает соединение.
689 </para> 734 </para>
690 735
691 </directive> 736 </directive>
692 737
693 738
694 <directive name="proxy_set_header"> 739 <directive name="proxy_set_header">
695 <syntax><value>заголовок</value> <value>значение</value></syntax> 740 <syntax><value>поле</value> <value>значение</value></syntax>
696 <default>Host $proxy_host</default> 741 <default>Host $proxy_host</default>
697 <default>Connection close</default> 742 <default>Connection close</default>
698 <context>http, server, location</context> 743 <context>http</context>
699 744 <context>server</context>
700 <para> 745 <context>location</context>
701 Директива позволяет переопределять или добавлять строки заголовка запроса, 746
747 <para>
748 Позволяет переопределять или добавлять поля заголовка запроса,
702 передаваемые проксируемому серверу. 749 передаваемые проксируемому серверу.
703 В качестве значения можно использовать текст, переменные и их комбинации. 750 В качестве значения можно использовать текст, переменные и их комбинации.
704 Директивы наследуются с предыдущего уровня при условии, что на данном 751 Директивы наследуются с предыдущего уровня при условии, что на данном
705 уровне не описаны свои директивы proxy_set_header. 752 уровне не описаны свои директивы <literal>proxy_set_header</literal>.
706 По умолчанию переопределяются только две строки: 753 По умолчанию переопределяются только два поля:
707 <example> 754 <example>
708 proxy_set_header Host $proxy_host; 755 proxy_set_header Host $proxy_host;
709 proxy_set_header Connection close; 756 proxy_set_header Connection close;
710 </example> 757 </example>
711 </para> 758 </para>
712 759
713 <para> 760 <para>
714 Неизменённую строку заголовка запроса "Host" можно передать так: 761 Неизменённое поле заголовка запроса <header>Host</header> можно передать так:
715 <example> 762 <example>
716 proxy_set_header Host $http_host; 763 proxy_set_header Host $http_host;
717 </example> 764 </example>
718 </para> 765 </para>
719 766
720 <para> 767 <para>
721 Однако, если эта строка отсутствует в запросе клиента, то ничего 768 Однако, если это поле отсутствует в заголовке запроса клиента, то ничего
722 передаваться не будет. В этом случае лучше воспользоваться переменной 769 передаваться не будет. В этом случае лучше воспользоваться переменной
723 $host, её значение равно имени сервера в строке заголовка запроса "Host" 770 <var>$host</var> - её значение равно имени сервера в поле <header>Host</header>
724 или же основному имени сервера, если строки нет: 771 заголовка запроса, или же основному имени сервера, если поля нет:
725 <example> 772 <example>
726 proxy_set_header Host $host; 773 proxy_set_header Host $host;
727 </example> 774 </example>
728 </para> 775 </para>
729 776
730 <para> 777 <para>
731 Кроме того, можно передать имя сервера вместе с портом проксируемого сервера: 778 Кроме того, можно передать имя сервера вместе с портом проксируемого сервера:
732 <example> 779 <example>
733 proxy_set_header Host $host:$proxy_port; 780 proxy_set_header Host $host:$proxy_port;
734 </example> 781 </example>
735 </para> 782 </para>
736 783
737 <para> 784 <para>
738 Если значение строки заголовка — пустая строка, то строка вообще 785 Если значение поля заголовка — пустая строка, то поле вообще
739 не будет передаваться проксируемому серверу: 786 не будет передаваться проксируемому серверу:
740 <example> 787 <example>
741 proxy_set_header Accept-Encoding ""; 788 proxy_set_header Accept-Encoding "";
742 </example> 789 </example>
743 </para> 790 </para>
744 791
745 </directive> 792 </directive>
746 793
747 794
748 <directive name="proxy_ssl_session_reuse"> 795 <directive name="proxy_ssl_session_reuse">
749 <syntax><literal>on</literal> | <literal>off</literal></syntax> 796 <syntax><literal>on</literal> | <literal>off</literal></syntax>
750 <default>on</default> 797 <default>on</default>
751 <context>http, server, location</context> 798 <context>http</context>
752 799 <context>server</context>
753 <para> 800 <context>location</context>
754 Директива определяет, использовать ли повторно SSL-сессии при 801
802 <para>
803 Определяет, использовать ли повторно SSL-сессии при
755 работе с проксированным сервером. Если в логах появляются ошибки 804 работе с проксированным сервером. Если в логах появляются ошибки
756 "SSL3_GET_FINISHED:digest check failed", то можно попробовать выключить 805 “<literal>SSL3_GET_FINISHED:digest check failed</literal>”,
806 то можно попробовать выключить
757 повторное использование сессий. 807 повторное использование сессий.
758 </para> 808 </para>
759 809
760 </directive> 810 </directive>
761 811
762 812
763 <directive name="proxy_store"> 813 <directive name="proxy_store">
764 <syntax><literal>on</literal> | <literal>off</literal> | <value>строка</value></syntax> 814 <syntax>
815 <literal>on</literal> |
816 <literal>off</literal> |
817 <value>строка</value></syntax>
765 <default>off</default> 818 <default>off</default>
766 <context>http, server, location</context> 819 <context>http</context>
767 820 <context>server</context>
768 <para> 821 <context>location</context>
769 Директива разрешает сохранение на диск файлов. 822
770 Параметр "on" сохраняет файлы в соответствии с путями, указаными в директивах 823 <para>
824 Разрешает сохранение на диск файлов.
825 Параметр <literal>on</literal> сохраняет файлы в соответствии с путями,
826 указанными в директивах
771 <link doc="ngx_http_core_module.xml" id="alias"/> или 827 <link doc="ngx_http_core_module.xml" id="alias"/> или
772 <link doc="ngx_http_core_module.xml" id="root"/>. 828 <link doc="ngx_http_core_module.xml" id="root"/>.
773 Параметр "off" запрещает сохранение файлов. 829 Параметр <literal>off</literal> запрещает сохранение файлов.
774 Кроме того, имя файла можно явно задать с помощью строки с переменными: 830 Кроме того, имя файла можно задать явно с помощью строки с переменными:
775 <example> 831 <example>
776 proxy_store /data/www$original_uri; 832 proxy_store /data/www$original_uri;
777 </example> 833 </example>
778 </para> 834 </para>
779 835
780 <para> 836 <para>
781 Время модификации файлов выставляется согласно полученной строке 837 Время изменения файлов выставляется согласно полученному полю
782 "Last-Modified" в заголовке ответа. 838 <header>Last-Modified</header> в заголовке ответа.
783 Ответ записывается во временный файл, а потом этот файл переименовывается. 839 Ответ записывается во временный файл, а потом этот файл переименовывается.
784 Начиная с версии 0.8.9, временный файл и постоянное место хранения ответа 840 Начиная с версии 0.8.9, временный файл и постоянное место хранения ответа
785 могут располагаться на разных файловых системах, но нужно учитывать, 841 могут располагаться на разных файловых системах, но нужно учитывать,
786 что в этом случае вместо дешёвой операции переименовывания в пределах 842 что в этом случае вместо дешёвой операции переименовывания в пределах
787 одной файловой системы файл копируется с одной файловой системы на другую. 843 одной файловой системы файл копируется с одной файловой системы на другую.
793 <para> 849 <para>
794 Директиву можно использовать для создания локальных копий статических 850 Директиву можно использовать для создания локальных копий статических
795 неизменяемых файлов, например, так: 851 неизменяемых файлов, например, так:
796 <example> 852 <example>
797 location /images/ { 853 location /images/ {
798 root /data/www; 854 root /data/www;
799 open_file_cache_errors off; 855 open_file_cache_errors off;
800 error_page 404 = /fetch$uri; 856 error_page 404 = /fetch$uri;
801 } 857 }
802 858
803 location /fetch/ { 859 location /fetch/ {
804 internal; 860 internal;
805 861
806 proxy_pass http://backend/; 862 proxy_pass http://backend/;
807 proxy_store on; 863 proxy_store on;
808 proxy_store_access user:rw group:rw all:r; 864 proxy_store_access user:rw group:rw all:r;
809 proxy_temp_path /data/temp; 865 proxy_temp_path /data/temp;
810 866
811 alias /data/www/; 867 alias /data/www/;
812 } 868 }
813 </example> 869 </example>
814 </para> 870 </para>
815 871
816 <para> 872 <para>
817 или так: 873 или так:
818 <example> 874 <example>
819 location /images/ { 875 location /images/ {
820 root /data/www; 876 root /data/www;
821 error_page 404 = @fetch; 877 error_page 404 = @fetch;
822 } 878 }
823 879
824 location @fetch { 880 location @fetch {
825 internal; 881 internal;
826 882
827 proxy_pass http://backend; 883 proxy_pass http://backend;
828 proxy_store on; 884 proxy_store on;
829 proxy_store_access user:rw group:rw all:r; 885 proxy_store_access user:rw group:rw all:r;
830 proxy_temp_path /data/temp; 886 proxy_temp_path /data/temp;
831 887
832 root /data/www; 888 root /data/www;
833 } 889 }
834 </example> 890 </example>
835 </para> 891 </para>
836 892
837 </directive> 893 </directive>
838 894
839 895
840 <directive name="proxy_store_access"> 896 <directive name="proxy_store_access">
841 <syntax><value>пользователи</value>:<value>права</value> ...</syntax> 897 <syntax><value>пользователи</value>:<value>права</value> ...</syntax>
842 <default>user:rw</default> 898 <default>user:rw</default>
843 <context>http, server, location</context> 899 <context>http</context>
844 900 <context>server</context>
845 <para> 901 <context>location</context>
846 Директива задаёт права доступа для создаваемых файлов и каталогов, например, 902
847 <example> 903 <para>
848 proxy_store_access user:rw group:rw all:r; 904 Задаёт права доступа для создаваемых файлов и каталогов, например,
849 </example> 905 <example>
850 </para> 906 proxy_store_access user:rw group:rw all:r;
851 907 </example>
852 <para> 908 </para>
853 Если заданы какие-либо права для groups или all, то права для user 909
910 <para>
911 Если заданы какие-либо права для <literal>group</literal> или
912 <literal>all</literal>, то права для <literal>user</literal>
854 указывать необязательно: 913 указывать необязательно:
855 <example> 914 <example>
856 proxy_store_access group:rw all:r; 915 proxy_store_access group:rw all:r;
857 </example> 916 </example>
858 </para> 917 </para>
859 918
860 </directive> 919 </directive>
861 920
862 921
863 <directive name="proxy_temp_path"> 922 <directive name="proxy_temp_path">
864 <syntax><value>путь</value> [<value>уровень1</value> [<value>уровень2</value> [<value>уровень3</value>]]]</syntax> 923 <syntax>
924 <value>путь</value>
925 [<value>уровень1</value>
926 [<value>уровень2</value>
927 [<value>уровень3</value>]]]</syntax>
865 <default>proxy_temp</default> 928 <default>proxy_temp</default>
866 <context>http, server, location</context> 929 <context>http</context>
867 930 <context>server</context>
868 <para> 931 <context>location</context>
869 Директива задаёт имя каталога для хранения временных файлов 932
933 <para>
934 Задаёт имя каталога для хранения временных файлов,
870 полученных от другого сервера. 935 полученных от другого сервера.
871 В каталоге может использоваться иерархия подкаталогов до трёх уровней. 936 В каталоге может использоваться иерархия подкаталогов до трёх уровней.
872 Например, при такой конфигурации 937 Например, при такой конфигурации
873 <example> 938 <example>
874 proxy_temp_path /spool/nginx/proxy_temp 1 2; 939 proxy_temp_path /spool/nginx/proxy_temp 1 2;
875 </example> 940 </example>
876 имя временного будет такого вида: 941 временный файл будет следующего вида:
877 <example> 942 <example>
878 /spool/nginx/proxy_temp/7/45/00000123457 943 /spool/nginx/proxy_temp/7/45/00000123457
879 </example> 944 </example>
880 </para> 945 </para>
881 946
882 </directive> 947 </directive>
883 948
884 </section> 949 </section>
885 950
886 951
887 <section name="Встроенные переменные" id="variables"> 952 <section id="variables" name="Встроенные переменные">
888 953
889 <para> 954 <para>
890 В модуле ngx_http_proxy_module есть встроенные переменные, 955 В модуле <literal>ngx_http_proxy_module</literal> есть встроенные переменные,
891 которые можно использовать для формирования заголовков с помощью директивы 956 которые можно использовать для формирования заголовков с помощью директивы
892 <link id="proxy_set_header"/>: 957 <link id="proxy_set_header"/>:
893 <list type="bullet"> 958 <list type="tag">
894 959
895 <listitem> 960 <tag-name><var>$proxy_host</var></tag-name>
896 $proxy_host, эта переменная равна имени проксируемого хоста и порта; 961 <tag-desc>имя проксируемого хоста и порт;</tag-desc>
897 </listitem> 962
898 963 <tag-name><var>$proxy_port</var></tag-name>
899 <listitem> 964 <tag-desc>порт проксируемого хоста;</tag-desc>
900 $proxy_port, эта переменная равна порту проксируемого хоста; 965
901 </listitem> 966 <tag-name><var>$proxy_add_x_forwarded_for</var></tag-name>
902 967 <tag-desc>поле заголовка запроса клиента <header>X-Forwarded-For</header>
903 <listitem> 968 и добавленная к нему через запятую переменная <var>$remote_addr</var>.
904 $proxy_add_x_forwarded_for, эта переменная равна строке заголовка запроса 969 Если же поля <header>X-Forwarded-For</header> в заголовке запроса клиента нет,
905 клиента "X-Forwarded-For" и добавленной к ней через запятую переменной 970 то переменная <var>$proxy_add_x_forwarded_for</var>
906 $remote_addr. Если же строки "X-Forwarded-For" в запросе клиента нет, 971 равна переменной <var>$remote_addr</var>.</tag-desc>
907 то переменная $proxy_add_x_forwarded_for равна переменной $remote_addr.
908 </listitem>
909
910 </list> 972 </list>
911 </para> 973 </para>
912 974
913 </section> 975 </section>
914 976