comparison xml/ru/docs/http/ngx_http_proxy_module.xml @ 279:fa1213cffc34

Revision.
author Ruslan Ermilov <ru@nginx.com>
date Tue, 27 Dec 2011 09:55:41 +0000
parents 44ab4026d9f5
children fd85955f31aa
comparison
equal deleted inserted replaced
278:ee8368ab093b 279:fa1213cffc34
39 <context>http</context> 39 <context>http</context>
40 <context>server</context> 40 <context>server</context>
41 <context>location</context> 41 <context>location</context>
42 42
43 <para> 43 <para>
44 Задаёт размер буфера, в который будет читаться 44 Задаёт <value>размер</value> буфера, в который будет читаться
45 первая часть ответа, получаемого от проксируемого сервера. 45 первая часть ответа, получаемого от проксируемого сервера.
46 В этой части ответа находится, как правило, небольшой заголовок ответа. 46 В этой части ответа находится, как правило, небольшой заголовок ответа.
47 По умолчанию размер буфера равен размеру одного буфера в директиве 47 По умолчанию размер буфера равен размеру одного буфера в директиве
48 <link id="proxy_buffers"/>, однако его можно сделать меньше. 48 <link id="proxy_buffers"/>, однако его можно сделать меньше.
49 </para> 49 </para>
71 71
72 <para> 72 <para>
73 Если буферизация выключена, то ответ синхронно передаётся клиенту сразу же 73 Если буферизация выключена, то ответ синхронно передаётся клиенту сразу же
74 по мере его поступления. 74 по мере его поступления.
75 nginx не пытается считать весь ответ проксируемого сервера. 75 nginx не пытается считать весь ответ проксируемого сервера.
76 Максимальный размер данных, который nginx может принять от сервера, 76 Максимальный размер данных, который nginx может принять от сервера
77 задаётся директивой <link id="proxy_buffer_size"/>. 77 за один раз, задаётся директивой <link id="proxy_buffer_size"/>.
78 </para> 78 </para>
79 79
80 </directive> 80 </directive>
81 81
82 82
86 <context>http</context> 86 <context>http</context>
87 <context>server</context> 87 <context>server</context>
88 <context>location</context> 88 <context>location</context>
89 89
90 <para> 90 <para>
91 Задаёт число и размер буферов для одного соединения, 91 Задаёт <value>число</value> и <value>размер</value> буферов
92 для одного соединения,
92 в которые будет читаться ответ, получаемый от проксируемого сервера. 93 в которые будет читаться ответ, получаемый от проксируемого сервера.
93 По умолчанию размер одного буфера равен размеру страницы. 94 По умолчанию размер одного буфера равен размеру страницы.
94 В зависимости от платформы это или 4K, или 8K. 95 В зависимости от платформы это или 4K, или 8K.
95 </para> 96 </para>
96 97
162 <context>http</context> 163 <context>http</context>
163 <context>server</context> 164 <context>server</context>
164 <context>location</context> 165 <context>location</context>
165 166
166 <para> 167 <para>
167 Задаёт число запросов, после которого ответ будет закэширован. 168 Задаёт <value>число</value> запросов, после которого ответ будет закэширован.
168 </para> 169 </para>
169 170
170 </directive> 171 </directive>
171 172
172 173
173 <directive name="proxy_cache_path"> 174 <directive name="proxy_cache_path">
174 <syntax> 175 <syntax>
175 <value>путь</value> 176 <value>путь</value>
176 [<literal>levels</literal>=<value>уровни</value>] 177 [<literal>levels</literal>=<value>уровни</value>]
177 <literal>keys_zone</literal>=<value>название</value>:<value>размер</value> 178 <literal>keys_zone</literal>=<value>имя</value>:<value>размер</value>
178 [<literal>inactive</literal>=<value>время</value>] 179 [<literal>inactive</literal>=<value>время</value>]
179 [<literal>max_size</literal>=<value>размер</value>]</syntax> 180 [<literal>max_size</literal>=<value>размер</value>]</syntax>
180 <default/> 181 <default/>
181 <context>http</context> 182 <context>http</context>
182 183
190 <example> 191 <example>
191 proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m; 192 proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;
192 </example> 193 </example>
193 имена файлов в кэше будут такого вида: 194 имена файлов в кэше будут такого вида:
194 <example> 195 <example>
195 /data/nginx/cache/<emphasis>c/29</emphasis>/b7f54b2df7773722d382f4809d650<emphasis>29c</emphasis> 196 /data/nginx/cache/<emphasis>c</emphasis>/<emphasis>29</emphasis>/b7f54b2df7773722d382f4809d650<emphasis>29c</emphasis>
196 </example> 197 </example>
197 </para> 198 </para>
198 199
199 <para> 200 <para>
200 Кэшируемый ответ записывается во временный файл, а потом этот файл 201 Кэшируемый ответ сначала записывается во временный файл, а потом этот файл
201 переименовывается. Начиная с версии 0.8.9, временные файлы и кэш 202 переименовывается. Начиная с версии 0.8.9, временные файлы и кэш
202 могут располагаться на разных файловых системах, но нужно учитывать, 203 могут располагаться на разных файловых системах, но нужно учитывать,
203 что в этом случае вместо дешёвой операции переименовывания в пределах 204 что в этом случае вместо дешёвой операции переименовывания в пределах
204 одной файловой системы файл копируется с одной файловой системы на другую. 205 одной файловой системы файл копируется с одной файловой системы на другую.
205 Поэтому лучше, если кэш будет находиться на той же файловой 206 Поэтому лучше, если кэш будет находиться на той же файловой
207 <link id="proxy_temp_path"/> для данного location. 208 <link id="proxy_temp_path"/> для данного location.
208 </para> 209 </para>
209 210
210 <para> 211 <para>
211 Кроме того, все активные ключи и информация о данных хранятся в разделяемой 212 Кроме того, все активные ключи и информация о данных хранятся в разделяемой
212 памяти — зоне, имя и размер которой задаётся параметром 213 памяти — зоне, <value>имя</value> и <value>размер</value> которой
213 <literal>keys_zone</literal>. 214 задаются параметром <literal>keys_zone</literal>.
214 Если к данным кэша не обращаются в течение времени, заданного параметром 215 Если к данным кэша не обращаются в течение времени, заданного параметром
215 <literal>inactive</literal>, то данные удаляются, независимо от их свежести. 216 <literal>inactive</literal>, то данные удаляются, независимо от их свежести.
216 По умолчанию <literal>inactive</literal> равен 10 минутам. 217 По умолчанию <literal>inactive</literal> равен 10 минутам.
217 </para> 218 </para>
218 219
301 <context>http</context> 302 <context>http</context>
302 <context>server</context> 303 <context>server</context>
303 <context>location</context> 304 <context>location</context>
304 305
305 <para> 306 <para>
306 Задаёт таймаут для соединения с проксированным сервером. 307 Задаёт таймаут для установления соединения с проксированным сервером.
307 Необходимо иметь в виду, что этот таймаут не может быть больше 75 секунд. 308 Необходимо иметь в виду, что этот таймаут обычно не может превышать 75 секунд.
308 </para> 309 </para>
309 310
310 </directive> 311 </directive>
311 312
312 313
313 <directive name="proxy_hide_header"> 314 <directive name="proxy_hide_header">
314 <syntax><value>имя</value></syntax> 315 <syntax><value>поле</value></syntax>
315 <default/> 316 <default/>
316 <context>http</context> 317 <context>http</context>
317 <context>server</context> 318 <context>server</context>
318 <context>location</context> 319 <context>location</context>
319 320
320 <para> 321 <para>
322 По умолчанию
321 nginx не передаёт клиенту поля заголовка <header>Date</header>, 323 nginx не передаёт клиенту поля заголовка <header>Date</header>,
322 <header>Server</header>, <header>X-Pad</header> и 324 <header>Server</header>, <header>X-Pad</header> и
323 <header>X-Accel-...</header> из ответа проксированного сервера. 325 <header>X-Accel-...</header> из ответа проксированного сервера.
324 Директива <literal>proxy_hide_header</literal> задаёт дополнительные поля. 326 Директива <literal>proxy_hide_header</literal> задаёт дополнительные поля,
325 Если же поля нужно напротив разрешить, следует воспользоваться 327 которые не будут передаваться.
328 Если же передачу полей нужно напротив разрешить, можно воспользоваться
326 директивой <link id="proxy_pass_header"/>. 329 директивой <link id="proxy_pass_header"/>.
327 </para> 330 </para>
328 331
329 </directive> 332 </directive>
330 333
598 <para> 601 <para>
599 Задаёт таймаут при чтении ответа проксированного сервера. 602 Задаёт таймаут при чтении ответа проксированного сервера.
600 Таймаут устанавливается не на всю передачу ответа, 603 Таймаут устанавливается не на всю передачу ответа,
601 а только между двумя операциями чтения. 604 а только между двумя операциями чтения.
602 Если по истечении этого времени проксируемый сервер ничего не передаст, 605 Если по истечении этого времени проксируемый сервер ничего не передаст,
603 то nginx закрывает соединение. 606 соединение закрывается.
604 </para> 607 </para>
605 608
606 </directive> 609 </directive>
607 610
608 611
636 </example> 639 </example>
637 тогда будет подставлено основное имя сервера и порт, если он отличен от 80. 640 тогда будет подставлено основное имя сервера и порт, если он отличен от 80.
638 </para> 641 </para>
639 642
640 <para> 643 <para>
641 Изменение по умолчанию, задаваемое значением <literal>default</literal>, 644 Стандартная замена, задаваемая параметром <literal>default</literal>,
642 использует параметры директив 645 использует параметры директив
643 <link doc="ngx_http_core_module.xml" id="location"/> и 646 <link doc="ngx_http_core_module.xml" id="location"/> и
644 <link id="proxy_pass"/>. 647 <link id="proxy_pass"/>.
645 Поэтому две нижеприведённые конфигурации одинаковы: 648 Поэтому две нижеприведённые конфигурации одинаковы:
646 <example> 649 <example>
652 <example> 655 <example>
653 location /one/ { 656 location /one/ {
654 proxy_pass http://upstream:port/two/; 657 proxy_pass http://upstream:port/two/;
655 proxy_redirect http://upstream:port/two/ /one/; 658 proxy_redirect http://upstream:port/two/ /one/;
656 </example> 659 </example>
657 Значение <literal>default</literal> недопустимо, если в <link id="proxy_pass"/> 660 Параметр <literal>default</literal> недопустим, если в <link id="proxy_pass"/>
658 используются переменные. 661 используются переменные.
659 </para> 662 </para>
660 663
661 <para> 664 <para>
662 В заменяемой строке можно использовать переменные: 665 В строке <value>замена</value> можно использовать переменные:
663 <example> 666 <example>
664 proxy_redirect http://localhost:8000/ http://$host:$server_port/; 667 proxy_redirect http://localhost:8000/ http://$host:$server_port/;
665 </example> 668 </example>
666 </para> 669 </para>
667 670
668 <para> 671 <para>
669 В перенаправлении тоже можно использовать (1.1.11) переменные: 672 В строке <value>перенаправление</value> тоже можно использовать (1.1.11)
673 переменные:
670 <example> 674 <example>
671 proxy_redirect http://$proxy_host:8000/ /; 675 proxy_redirect http://$proxy_host:8000/ /;
672 </example> 676 </example>
673 </para> 677 </para>
674 678
685 proxy_redirect ~*/user/([^/]+)/(.+)$ http://$1.example.com/$2; 689 proxy_redirect ~*/user/([^/]+)/(.+)$ http://$1.example.com/$2;
686 </example> 690 </example>
687 </para> 691 </para>
688 692
689 <para> 693 <para>
690 Директив может быть несколько: 694 Директив <literal>proxy_redirect</literal> может быть несколько:
691 <example> 695 <example>
692 proxy_redirect default; 696 proxy_redirect default;
693 proxy_redirect http://localhost:8000/ /; 697 proxy_redirect http://localhost:8000/ /;
694 proxy_redirect http://www.example.com/ /; 698 proxy_redirect http://www.example.com/ /;
695 </example> 699 </example>
696 </para> 700 </para>
697 701
698 <para> 702 <para>
699 Значение <literal>off</literal> запрещает все директивы 703 Параметр <literal>off</literal> запрещает все директивы
700 <literal>proxy_redirect</literal> 704 <literal>proxy_redirect</literal>
701 на данном уровне: 705 на данном уровне:
702 <example> 706 <example>
703 proxy_redirect off; 707 proxy_redirect off;
704 proxy_redirect default; 708 proxy_redirect default;
718 </directive> 722 </directive>
719 723
720 724
721 <directive name="proxy_send_timeout"> 725 <directive name="proxy_send_timeout">
722 <syntax><value>время</value></syntax> 726 <syntax><value>время</value></syntax>
723 <default>60</default> 727 <default>60s</default>
724 <context>http</context> 728 <context>http</context>
725 <context>server</context> 729 <context>server</context>
726 <context>location</context> 730 <context>location</context>
727 731
728 <para> 732 <para>
729 Задаёт таймаут при передаче запроса проксированному серверу. 733 Задаёт таймаут при передаче запроса проксированному серверу.
730 Таймаут устанавливается не на всю передачу запроса, 734 Таймаут устанавливается не на всю передачу запроса,
731 а только между двумя операциями записи. 735 а только между двумя операциями записи.
732 Если по истечении этого времени проксируемый сервер не примет новых данных, 736 Если по истечении этого времени проксируемый сервер не примет новых данных,
733 то nginx закрывает соединение. 737 соединение закрывается.
734 </para> 738 </para>
735 739
736 </directive> 740 </directive>
737 741
738 742
765 </para> 769 </para>
766 770
767 <para> 771 <para>
768 Однако, если это поле отсутствует в заголовке запроса клиента, то ничего 772 Однако, если это поле отсутствует в заголовке запроса клиента, то ничего
769 передаваться не будет. В этом случае лучше воспользоваться переменной 773 передаваться не будет. В этом случае лучше воспользоваться переменной
770 <var>$host</var> - её значение равно имени сервера в поле <header>Host</header> 774 <var>$host</var>&mdash;её значение равно имени сервера в поле <header>Host</header>
771 заголовка запроса, или же основному имени сервера, если поля нет: 775 заголовка запроса, или же основному имени сервера, если поля нет:
772 <example> 776 <example>
773 proxy_set_header Host $host; 777 proxy_set_header Host $host;
774 </example> 778 </example>
775 </para> 779 </para>
834 </para> 838 </para>
835 839
836 <para> 840 <para>
837 Время изменения файлов выставляется согласно полученному полю 841 Время изменения файлов выставляется согласно полученному полю
838 <header>Last-Modified</header> в заголовке ответа. 842 <header>Last-Modified</header> в заголовке ответа.
839 Ответ записывается во временный файл, а потом этот файл переименовывается. 843 Ответ сначала записывается во временный файл, а потом этот файл
844 переименовывается.
840 Начиная с версии 0.8.9, временный файл и постоянное место хранения ответа 845 Начиная с версии 0.8.9, временный файл и постоянное место хранения ответа
841 могут располагаться на разных файловых системах, но нужно учитывать, 846 могут располагаться на разных файловых системах, но нужно учитывать,
842 что в этом случае вместо дешёвой операции переименовывания в пределах 847 что в этом случае вместо дешёвой операции переименовывания в пределах
843 одной файловой системы файл копируется с одной файловой системы на другую. 848 одной файловой системы файл копируется с одной файловой системы на другую.
844 Поэтому лучше, если сохраняемые файлы будут находиться на той же файловой 849 Поэтому лучше, если сохраняемые файлы будут находиться на той же файловой
938 <example> 943 <example>
939 proxy_temp_path /spool/nginx/proxy_temp 1 2; 944 proxy_temp_path /spool/nginx/proxy_temp 1 2;
940 </example> 945 </example>
941 временный файл будет следующего вида: 946 временный файл будет следующего вида:
942 <example> 947 <example>
943 /spool/nginx/proxy_temp/7/45/00000123457 948 /spool/nginx/proxy_temp/<emphasis>7</emphasis>/<emphasis>45</emphasis>/00000123<emphasis>457</emphasis>
944 </example> 949 </example>
945 </para> 950 </para>
946 951
947 </directive> 952 </directive>
948 953