annotate xml/ru/docs/http/ngx_http_perl_module.xml @ 506:657848837328

Documented how nginx processes proxied server's response header fields (X-Accel-*, Expires, Cache-Control, Set-Cookie) that can be ignored.
author Ruslan Ermilov <ru@nginx.com>
date Tue, 24 Apr 2012 07:32:41 +0000
parents c640e00858ed
children be54c443235a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
222
bfe3eff81d04 Removed redundant encoding specification.
Ruslan Ermilov <ru@nginx.com>
parents: 110
diff changeset
1 <?xml version="1.0"?>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
5 <module name="Модуль ngx_http_perl_module"
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6 link="/ru/docs/http/ngx_http_perl_module.html"
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 lang="ru">
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
110
40eec261c2a6 Added proper support for anonymous sections, notably for the summary.
Ruslan Ermilov <ru@nginx.com>
parents: 106
diff changeset
9 <section id="summary">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
12 Модуль <literal>ngx_http_perl_module</literal> позволяет писать обработчики
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
13 location и переменных на Perl, а также вставлять вызовы Perl в SSI.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
14 </para>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
15
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
16 <para>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
17 По умолчанию этот модуль не собирается, его сборку необходимо
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
18 разрешить с помощью конфигурационного параметра
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
19 <literal>--with-http_perl_module</literal>.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
20 <note>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
21 Для сборки этого модуля необходим Perl версии 5.6.1 и выше.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
22 Компилятор C должен быть совместим с тем, которым был собран Perl.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
23 </note>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26 </section>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
29 <section id="bugs" name="Известные проблемы">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31 <para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 Модуль экспериментальный, поэтому возможно всё.
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
36 Для того, чтобы во время переконфигурации Perl перекомпилировал
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
37 изменённые модули, его нужно собрать с параметрами
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
38 <literal>-Dusemultiplicity=yes</literal> или
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
39 <literal>-Dusethreads=yes</literal>.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
40 Кроме того, чтобы во время работы Perl меньше терял память,
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
41 его нужно собрать с параметром
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
42 <literal>-Dusemymalloc=no</literal>.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 Узнать значения этих параметров у уже собранного
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
44 Perl можно так (в примере приведены желаемые значения параметров):
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45 <example>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
46 $ perl -V:usemultiplicity -V:usemymalloc
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47 usemultiplicity='define';
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 usemymalloc='n';
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49 </example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
53 Необходимо учитывать, что после пересборки Perl с новыми параметрами
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
54 <literal>-Dusemultiplicity=yes</literal> или
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
55 <literal>-Dusethreads=yes</literal>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
56 придётся также пересобрать и все бинарные модули Perl — они
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
57 просто перестанут работать с новым Perl.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60 <para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61 Возможно, основной процесс, а вслед за ним и рабочие процессы,
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
62 будут увеличиваться в размерах при каждой переконфигурации.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63 Когда основной процесс вырастет до неприемлемых размеров, можно
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64 воспользоваться процедурой
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
65 <link doc="../control.xml" id="upgrade">обновления сервера на лету</link>,
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
66 не меняя при этом сам исполняемый файл.
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
67 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
69 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
70 Если модуль Perl выполняет длительную операцию, например, определяет
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71 адрес по имени, соединяется с другим сервером, делает запрос к базе данных,
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
72 то на это время все остальные запросы, обслуживаемые данным рабочим процессом,
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
73 не будут обрабатываться. Поэтому рекомендуется ограничиться операциями,
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
74 время исполнения которых короткое и предсказуемое, например, обращение
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
75 к локальной файловой системе.
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
76 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
77
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
78 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
79 Нижеописанные проблемы относятся только к версиям nginx до 0.6.22.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
80
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
81 <note>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
82 Данные, возвращаемые методами объекта запроса <literal>$r</literal>,
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
83 имеют только текстовое значение, причём само значение хранится
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
84 в памяти, выделяемой не Perl, а nginx из собственных пулов.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
85 Это позволяет уменьшить число операций копирования в большинстве случаев,
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
86 однако в некоторых ситуациях это приводит к ошибке,
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
87 например, при попытке использования таких значений в численном контексте
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
88 рабочий процесс выходит с ошибкой (FreeBSD):
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
89 <example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
90 nginx in realloc(): warning: pointer to wrong page
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
91 Out of memory!
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
92 Callback called exit.
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
93 </example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
94 или (Linux):
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
95 <example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
96 *** glibc detected *** realloc(): invalid pointer: ... ***
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
97 Out of memory!
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
98 Callback called exit.
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
99 </example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
100 Обход такой ситуации простой — нужно присвоить значение метода
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
101 переменной, например, такой код
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
102 <example>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
103 my $i = $r->variable('counter') + 1;
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
104 </example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
105 нужно заменить на
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
106 <example>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
107 my $i = $r->variable('counter');
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
108 $i++;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
109 </example>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
110 </note>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
111
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
112 <note>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
113 Так как строки внутри nginx в большинстве случаев хранятся без
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
114 завершающего нуля, то они в таком же виде возвращаются методами
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
115 объекта запроса <literal>$r</literal> (исключения составляют методы
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
116 <literal>$r->filename</literal> и <literal>$r->request_body_file</literal>).
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
117 Поэтому такие значения нельзя использовать
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
118 в качестве имени файла и тому подобном.
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
119 Обход такой же, как и предыдущей ситуации — присвоение значения
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
120 переменной (при этом происходит копирование данных и добавление необходимого
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
121 нуля) или же использование в выражении, например:
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
122 <example>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
123 open FILE, '/path/' . $r->variable('name');
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
124 </example>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
125 </note>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
126
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
127 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
128
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
129 </section>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
130
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
131
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
132 <section id="example" name="Пример конфигурации">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
133
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
134 <para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
135 <example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
136 http {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
137
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
138 perl_modules perl/lib;
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
139 perl_require hello.pm;
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
140
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
141 perl_set $msie6 '
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
142
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
143 sub {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
144 my $r = shift;
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
145 my $ua = $r->header_in("User-Agent");
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
146
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
147 return "" if $ua =~ /Opera/;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
148 return "1" if $ua =~ / MSIE [6-9]\.\d+/;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
149 return "";
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
150 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
151
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
152 ';
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
153
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
154 server {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
155 location / {
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
156 perl hello::handler;
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
157 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
158 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
159 </example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
160 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
161
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
162 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
163 Модуль <path>perl/lib/hello.pm</path>:
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
164 <example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
165 package hello;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
166
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
167 use nginx;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
168
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
169 sub handler {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
170 my $r = shift;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
171
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
172 $r->send_http_header("text/html");
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
173 return OK if $r->header_only;
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
174
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
175 $r->print("hello!\n&lt;br/&gt;");
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
176
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
177 if (-f $r->filename or -d _) {
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
178 $r->print($r->uri, " exists!\n");
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
179 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
180
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
181 return OK;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
182 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
183
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
184 1;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
185 __END__
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
186 </example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
187 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
188
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
189 </section>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
190
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
191
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
192 <section id="directives" name="Директивы">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
193
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
194 <directive name="perl">
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
195 <syntax><value>модуль</value>::<value>функция</value>|'sub { ... }'</syntax>
99
1d315ef37215 The case <default/> is now language-agnostic.
Ruslan Ermilov <ru@nginx.com>
parents: 79
diff changeset
196 <default/>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
197 <context>location</context>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
198 <context>limit_except</context>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
199
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
200 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
201 Устанавливает обработчик Perl для данного location.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
202 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
203
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
204 </directive>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
205
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
206
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
207 <directive name="perl_modules">
102
c76a257f3fd4 The directive name is now automatically printed in <default> and <syntax>.
Ruslan Ermilov <ru@nginx.com>
parents: 99
diff changeset
208 <syntax><value>путь</value></syntax>
99
1d315ef37215 The case <default/> is now language-agnostic.
Ruslan Ermilov <ru@nginx.com>
parents: 79
diff changeset
209 <default/>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
210 <context>http</context>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
211
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
212 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
213 Задаёт дополнительный путь для модулей Perl.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
214 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
215
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
216 </directive>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
217
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
218
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
219 <directive name="perl_require">
102
c76a257f3fd4 The directive name is now automatically printed in <default> and <syntax>.
Ruslan Ermilov <ru@nginx.com>
parents: 99
diff changeset
220 <syntax><value>модуль</value></syntax>
99
1d315ef37215 The case <default/> is now language-agnostic.
Ruslan Ermilov <ru@nginx.com>
parents: 79
diff changeset
221 <default/>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
222 <context>http</context>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
223
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
224 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
225 Задаёт имя модуля, который будет подгружаться при каждой
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
226 переконфигурации.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
227 Директив <literal>perl_require</literal> может быть несколько.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
228 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
229
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
230 </directive>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
231
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
232
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
233 <directive name="perl_set">
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
234 <syntax>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
235 <value>$переменная</value>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
236 <value>модуль</value>::<value>функция</value>|'sub { ... }'</syntax>
99
1d315ef37215 The case <default/> is now language-agnostic.
Ruslan Ermilov <ru@nginx.com>
parents: 79
diff changeset
237 <default/>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
238 <context>http</context>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
239
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
240 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
241 Устанавливает обработчик Perl для указанной переменной.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
242 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
243
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
244 </directive>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
245
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
246 </section>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
247
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
248
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
249 <section id="ssi" name="Вызов Perl из SSI">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
250
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
251 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
252 Формат команды SSI с вызовом Perl следующий:
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
253 <example>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
254 &lt;!--# perl sub="<value>модуль</value>::<value>функция</value>" arg="<value>параметр1</value>" arg="<value>параметр2</value>" ...
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
255 --&gt;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
256 </example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
257 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
258
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
259 </section>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
260
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
261
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
262 <section id="methods" name="Методы объекта запроса $r">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
263
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
264 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
265 <list type="tag">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
266
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
267 <tag-name><literal>$r->args</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
268 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
269 возвращает аргументы запроса.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
270 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
271
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
272 <tag-name><literal>$r->filename</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
273 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
274 возвращает имя файла, соответствующее URI запроса.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
275 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
276
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
277 <tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
278 <literal>$r->has_request_body(<value>обработчик</value>)</literal>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
279 </tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
280 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
281 возвращает 0, если в запросе нет тела.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
282 Если же тело запроса есть, то устанавливается
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
283 указанный обработчик и возвращается 1.
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
284 По окончании чтения тела запроса nginx вызовет установленный обработчик.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
285 Обратите внимание, что нужно передавать ссылку на функцию обработчика.
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
286 Пример:
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
287 <example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
288 package hello;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
289
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
290 use nginx;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
291
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
292 sub handler {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
293 my $r = shift;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
294
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
295 if ($r->request_method ne "POST") {
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
296 return DECLINED;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
297 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
298
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
299 if ($r->has_request_body(<emphasis>\&amp;post</emphasis>)) {
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
300 return OK;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
301 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
302
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
303 return HTTP_BAD_REQUEST;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
304 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
305
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
306 sub <emphasis>post</emphasis> {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
307 my $r = shift;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
308
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
309 $r->send_http_header;
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
310
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
311 $r->print("request_body: \"", $r->request_body, "\"&lt;br/&gt;");
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
312 $r->print("request_body_file: \"", $r->request_body_file, "\"&lt;br/&gt;\n");
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
313
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
314 return OK;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
315 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
316
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
317 1;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
318
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
319 __END__
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
320 </example>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
321 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
322
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
323 <tag-name><literal>$r->allow_ranges</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
324 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
325 разрешает использовать диапазоны байт (byte ranges) при передаче ответа.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
326 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
327
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
328 <tag-name><literal>$r->discard_request_body</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
329 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
330 указывает nginx игнорировать тело запроса.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
331 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
332
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
333 <tag-name><literal>$r->header_in(<value>поле</value>)</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
334 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
335 возвращает значение заданного поля в заголовке запроса клиента.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
336 </tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
337
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
338 <tag-name><literal>$r->header_only</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
339 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
340 определяет, нужно ли передавать клиенту только заголовок ответа или весь ответ.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
341 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
342
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
343 <tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
344 <literal>$r->header_out(<value>поле</value>,
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
345 <value>значение</value>)</literal>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
346 </tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
347 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
348 устанавливает значение для заданного поля в заголовке ответа.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
349 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
350
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
351 <tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
352 <literal>$r->internal_redirect(<value>uri</value>)</literal>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
353 </tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
354 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
355 делает внутреннее перенаправление на указанный <value>uri</value>.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
356 Перенаправление происходит уже после завершения обработчика Perl.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
357 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
358
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
359 <tag-name><literal>$r->print(<value>текст</value>, ...)</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
360 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
361 метод передаёт клиенту данные.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
362 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
363
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
364 <tag-name><literal>$r->request_body</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
365 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
366 возвращает тело запроса клиента при условии,
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
367 что тело не записано во временный файл.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
368 Для того, чтобы тело запроса клиента гарантированно находилось в памяти,
79
0a45870d0160 Fixed cross-document links to use doc and id.
Maxim Dounin <mdounin@mdounin.ru>
parents: 76
diff changeset
369 нужно ограничить его размер с помощью
106
56457a474903 If text of the link is not provided, the @id is used.
Ruslan Ermilov <ru@nginx.com>
parents: 102
diff changeset
370 <link doc="ngx_http_core_module.xml" id="client_max_body_size"/>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
371 и задать достаточной размер для буфера
106
56457a474903 If text of the link is not provided, the @id is used.
Ruslan Ermilov <ru@nginx.com>
parents: 102
diff changeset
372 <link doc="ngx_http_core_module.xml" id="client_body_buffer_size"/>.
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
373 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
374
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
375 <tag-name><literal>$r->request_body_file</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
376 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
377 возвращает имя файла, в котором хранится тело запроса клиента.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
378 По завершению обработки файл необходимо удалить.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
379 Для того, чтобы тело запроса клиента всегда записывалось в файл,
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
380 следует включить
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
381 <link doc="ngx_http_core_module.xml" id="client_body_in_file_only"/>.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
382 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
383
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
384 <tag-name><literal>$r->request_method</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
385 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
386 возвращает HTTP-метод запроса клиента.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
387 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
388
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
389 <tag-name><literal>$r->remote_addr</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
390 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
391 возвращает IP-адрес клиента.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
392 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
393
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
394 <tag-name><literal>$r->flush</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
395 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
396 немедленно передаёт данные клиенту.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
397 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
398
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
399 <tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
400 <literal>$r->sendfile(<value>имя</value>[,
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
401 <value>смещение</value>[,
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
402 <value>длина</value>]])</literal>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
403 </tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
404 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
405 передаёт клиенту содержимое указанного файла.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
406 Необязательные параметры
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
407 задают начальное смещение и длину передаваемых данных.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
408 Непосредственно передача данных происходит уже после завершения
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
409 обработчика Perl.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
410 Необходимо учитывать, что при использовании
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
411 этого метода в подзапросе и включённой директиве
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
412 <link doc="ngx_http_core_module.xml" id="sendfile"/>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
413 содержимое файла не будет проходить через
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
414 <link doc="ngx_http_gzip_module.xml">gzip</link>,
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
415 <link doc="ngx_http_ssi_module.xml">SSI</link> и
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
416 <link doc="ngx_http_charset_module.xml">charset</link>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
417 фильтры.
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
418 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
419
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
420 <tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
421 <literal>$r->send_http_header([<value>тип</value>])</literal>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
422 </tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
423 <tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
424 передаёт клиенту заголовок ответа.
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
425 Необязательный параметр <value>тип</value> устанавливает значение поля
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
426 <header>Content-Type</header> в заголовке ответа.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
427 Пустая строка в качестве типа запрещает передачу поля
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
428 <header>Content-Type</header>.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
429 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
430
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
431 <tag-name><literal>$r->status(<value>код</value>)</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
432 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
433 устанавливает код ответа.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
434 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
435
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
436 <tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
437 <literal>$r->sleep(<value>миллисекунды</value>,
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
438 <value>обработчик</value>)</literal>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
439 </tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
440 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
441 устанавливает указанный обработчик
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
442 и останавливает обработку запроса на заданное время.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
443 nginx в это время продолжает обрабатывать другие запросы.
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
444 По истечении указанного времени nginx вызовет установленный обработчик.
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
445 Обратите внимание, что нужно передавать ссылку на функцию обработчика.
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
446 Для передачи данных между обработчиками следует использовать
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
447 <literal>$r->variable()</literal>.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
448 Пример:
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
449 <example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
450 package hello;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
451
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
452 use nginx;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
453
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
454 sub handler {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
455 my $r = shift;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
456
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
457 $r->discard_request_body;
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
458 $r->variable("var", "OK");
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
459 $r->sleep(1000, <emphasis>\&amp;next</emphasis>);
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
460
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
461 return OK;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
462 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
463
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
464 sub <emphasis>next</emphasis> {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
465 my $r = shift;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
466
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
467 $r->send_http_header;
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
468 $r->print($r->variable("var"));
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
469
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
470 return OK;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
471 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
472
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
473 1;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
474
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
475 __END__
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
476 </example>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
477 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
478
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
479 <tag-name><literal>$r->unescape(<value>текст</value>)</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
480 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
481 декодирует текст, заданный в виде “%XX”.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
482 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
483
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
484 <tag-name><literal>$r->uri</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
485 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
486 возвращает URI запроса.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
487 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
488
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
489 <tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
490 <literal>$r->variable(<value>имя</value>[,
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
491 <value>значение</value>])</literal>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
492 </tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
493 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
494 возвращает или устанавливает значение указанной переменной.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
495 Переменные локальны для каждого запроса.
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
496 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
497
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
498 </list>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
499 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
500
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
501 </section>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
502
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
503 </module>