Mercurial > hg > nginx-site
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>—её значение равно имени сервера в поле <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 |