annotate xml/ru/docs/http/ngx_http_perl_module.xml @ 3090:27532d42102b default tip

Documented the "rate" parameter of the "error_log" directive.
author Maxim Dounin <mdounin@mdounin.ru>
date Sun, 16 Jun 2024 06:55:30 +0300
parents 23b9cbb0c11d
children
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
580
be54c443235a Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents: 415
diff changeset
3 <!--
be54c443235a Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents: 415
diff changeset
4 Copyright (C) Igor Sysoev
be54c443235a Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents: 415
diff changeset
5 Copyright (C) Nginx, Inc.
be54c443235a Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents: 415
diff changeset
6 -->
be54c443235a Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents: 415
diff changeset
7
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
10 <module name="Модуль ngx_http_perl_module"
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11 link="/ru/docs/http/ngx_http_perl_module.html"
589
764fbac1b8b4 Added document revision.
Ruslan Ermilov <ru@nginx.com>
parents: 580
diff changeset
12 lang="ru"
3089
23b9cbb0c11d Documented $r->log_error() logging level.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2413
diff changeset
13 rev="8">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14
110
40eec261c2a6 Added proper support for anonymous sections, notably for the summary.
Ruslan Ermilov <ru@nginx.com>
parents: 106
diff changeset
15 <section id="summary">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
18 Модуль <literal>ngx_http_perl_module</literal> позволяет писать обработчики
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
19 location и переменных на Perl, а также вставлять вызовы Perl в SSI.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
20 </para>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
21
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
22 <para>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
23 По умолчанию этот модуль не собирается, его сборку необходимо
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
24 разрешить с помощью конфигурационного параметра
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
25 <literal>--with-http_perl_module</literal>.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
26 <note>
1718
c3f411040d24 Added link to Perl in the perl module.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 1580
diff changeset
27 Для сборки этого модуля необходим
c3f411040d24 Added link to Perl in the perl module.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 1580
diff changeset
28 <link url="https://www.perl.org/get.html">Perl</link> версии 5.6.1 и выше.
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
29 Компилятор C должен быть совместим с тем, которым был собран Perl.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
30 </note>
76
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 </section>
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
1580
c711a8a1a8f9 Changed ID from "bugs" to "issues" for http/2, perl, spdy.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 1578
diff changeset
36 <section id="issues" name="Известные проблемы">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38 <para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 Модуль экспериментальный, поэтому возможно всё.
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 <para>
966
95c3c3bbf1ce Text review.
Egor Nikitin <yegor.nikitin@gmail.com>
parents: 760
diff changeset
43 Для того чтобы во время переконфигурации Perl перекомпилировал
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
44 изменённые модули, его нужно собрать с параметрами
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
45 <literal>-Dusemultiplicity=yes</literal> или
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
46 <literal>-Dusethreads=yes</literal>.
966
95c3c3bbf1ce Text review.
Egor Nikitin <yegor.nikitin@gmail.com>
parents: 760
diff changeset
47 Кроме того, чтобы во время работы Perl терял меньше памяти,
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
48 его нужно собрать с параметром
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
49 <literal>-Dusemymalloc=no</literal>.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 Узнать значения этих параметров у уже собранного
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
51 Perl можно так (в примере приведены желаемые значения параметров):
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52 <example>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
53 $ perl -V:usemultiplicity -V:usemymalloc
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54 usemultiplicity='define';
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55 usemymalloc='n';
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56 </example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
60 Необходимо учитывать, что после пересборки Perl с новыми параметрами
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
61 <literal>-Dusemultiplicity=yes</literal> или
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
62 <literal>-Dusethreads=yes</literal>
966
95c3c3bbf1ce Text review.
Egor Nikitin <yegor.nikitin@gmail.com>
parents: 760
diff changeset
63 придётся также пересобрать и все бинарные модули Perl, так как они
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
64 просто перестанут работать с новым Perl.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65 </para>
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>
1842
db848aaa123a Corrected Russian translation of "master process".
Yaroslav Zhuravlev <yar@nginx.com>
parents: 1718
diff changeset
68 Возможно, главный процесс, а вслед за ним и рабочие процессы,
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
69 будут увеличиваться в размерах при каждой переконфигурации.
1842
db848aaa123a Corrected Russian translation of "master process".
Yaroslav Zhuravlev <yar@nginx.com>
parents: 1718
diff changeset
70 Когда главный процесс вырастет до неприемлемых размеров, можно
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 <link doc="../control.xml" id="upgrade">обновления сервера на лету</link>,
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73 не меняя при этом сам исполняемый файл.
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
74 </para>
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>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
77 Если модуль Perl выполняет длительную операцию, например, определяет
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
78 адрес по имени, соединяется с другим сервером, делает запрос к базе данных,
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
79 то на это время все остальные запросы, обслуживаемые данным рабочим процессом,
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
80 не будут обрабатываться. Поэтому рекомендуется ограничиться операциями,
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
81 время исполнения которых короткое и предсказуемое, например, обращение
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
82 к локальной файловой системе.
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
83 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
84
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
85 </section>
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
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
88 <section id="example" name="Пример конфигурации">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
89
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
90 <para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
91 <example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
92 http {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
93
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
94 perl_modules perl/lib;
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
95 perl_require hello.pm;
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
96
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
97 perl_set $msie6 '
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
98
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
99 sub {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
100 my $r = shift;
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
101 my $ua = $r->header_in("User-Agent");
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
102
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
103 return "" if $ua =~ /Opera/;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
104 return "1" if $ua =~ / MSIE [6-9]\.\d+/;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
105 return "";
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
106 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
107
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
108 ';
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
109
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
110 server {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
111 location / {
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
112 perl hello::handler;
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
113 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
114 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
115 </example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
116 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
117
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
118 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
119 Модуль <path>perl/lib/hello.pm</path>:
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
120 <example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
121 package hello;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
122
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
123 use nginx;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
124
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
125 sub handler {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
126 my $r = shift;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
127
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
128 $r->send_http_header("text/html");
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
129 return OK if $r->header_only;
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
130
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
131 $r->print("hello!\n&lt;br/&gt;");
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
132
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
133 if (-f $r->filename or -d _) {
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
134 $r->print($r->uri, " exists!\n");
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
135 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
136
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
137 return OK;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
138 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
139
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
140 1;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
141 __END__
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
142 </example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
143 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
144
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
145 </section>
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
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
148 <section id="directives" name="Директивы">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
149
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
150 <directive name="perl">
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
151 <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
152 <default/>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
153 <context>location</context>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
154 <context>limit_except</context>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
155
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
156 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
157 Устанавливает обработчик Perl для данного location.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
158 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
159
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
160 </directive>
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
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
163 <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
164 <syntax><value>путь</value></syntax>
99
1d315ef37215 The case <default/> is now language-agnostic.
Ruslan Ermilov <ru@nginx.com>
parents: 79
diff changeset
165 <default/>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
166 <context>http</context>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
167
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
168 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
169 Задаёт дополнительный путь для модулей Perl.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
170 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
171
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
172 </directive>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
173
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
174
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
175 <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
176 <syntax><value>модуль</value></syntax>
99
1d315ef37215 The case <default/> is now language-agnostic.
Ruslan Ermilov <ru@nginx.com>
parents: 79
diff changeset
177 <default/>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
178 <context>http</context>
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 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
181 Задаёт имя модуля, который будет подгружаться при каждой
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
182 переконфигурации.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
183 Директив <literal>perl_require</literal> может быть несколько.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
184 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
185
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
186 </directive>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
187
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 <directive name="perl_set">
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
190 <syntax>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
191 <value>$переменная</value>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
192 <value>модуль</value>::<value>функция</value>|'sub { ... }'</syntax>
99
1d315ef37215 The case <default/> is now language-agnostic.
Ruslan Ermilov <ru@nginx.com>
parents: 79
diff changeset
193 <default/>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
194 <context>http</context>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
195
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
196 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
197 Устанавливает обработчик Perl для указанной переменной.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
198 </para>
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 </directive>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
201
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
202 </section>
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
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
205 <section id="ssi" name="Вызов Perl из SSI">
76
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 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
208 Формат команды SSI с вызовом Perl следующий:
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
209 <example>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
210 &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
211 --&gt;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
212 </example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
213 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
214
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
215 </section>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
216
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
217
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
218 <section id="methods" name="Методы объекта запроса $r">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
219
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
220 <para>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
221 <list type="tag">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
222
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
223 <tag-name><literal>$r->args</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
224 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
225 возвращает аргументы запроса.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
226 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
227
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
228 <tag-name><literal>$r->filename</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
229 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
230 возвращает имя файла, соответствующее URI запроса.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
231 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
232
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
233 <tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
234 <literal>$r->has_request_body(<value>обработчик</value>)</literal>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
235 </tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
236 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
237 возвращает 0, если в запросе нет тела.
966
95c3c3bbf1ce Text review.
Egor Nikitin <yegor.nikitin@gmail.com>
parents: 760
diff changeset
238 Если же в запросе есть тело, то устанавливается
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
239 указанный обработчик и возвращается 1.
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
240 По окончании чтения тела запроса nginx вызовет установленный обработчик.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
241 Обратите внимание, что нужно передавать ссылку на функцию обработчика.
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
242 Пример:
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
243 <example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
244 package hello;
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 use nginx;
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 sub handler {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
249 my $r = shift;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
250
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
251 if ($r->request_method ne "POST") {
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
252 return DECLINED;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
253 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
254
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
255 if ($r->has_request_body(<emphasis>\&amp;post</emphasis>)) {
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
256 return OK;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
257 }
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 return HTTP_BAD_REQUEST;
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
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
262 sub <emphasis>post</emphasis> {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
263 my $r = shift;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
264
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
265 $r->send_http_header;
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 $r->print("request_body: \"", $r->request_body, "\"&lt;br/&gt;");
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
268 $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
269
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
270 return OK;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
271 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
272
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
273 1;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
274
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
275 __END__
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
276 </example>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
277 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
278
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
279 <tag-name><literal>$r->allow_ranges</literal></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 разрешает использовать диапазоны байт (byte ranges) при передаче ответа.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
282 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
283
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
284 <tag-name><literal>$r->discard_request_body</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
285 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
286 указывает nginx игнорировать тело запроса.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
287 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
288
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
289 <tag-name><literal>$r->header_in(<value>поле</value>)</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
290 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
291 возвращает значение заданного поля в заголовке запроса клиента.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
292 </tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
293
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
294 <tag-name><literal>$r->header_only</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
295 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
296 определяет, нужно ли передавать клиенту только заголовок ответа или весь ответ.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
297 </tag-desc>
76
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 <tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
300 <literal>$r->header_out(<value>поле</value>,
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
301 <value>значение</value>)</literal>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
302 </tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
303 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
304 устанавливает значение для заданного поля в заголовке ответа.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
305 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
306
2413
c6581f9aefa3 Documented Perl $r->internal_redirect() fixes.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 1842
diff changeset
307 <tag-name id="r_internal_redirect">
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
308 <literal>$r->internal_redirect(<value>uri</value>)</literal>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
309 </tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
310 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
311 делает внутреннее перенаправление на указанный <value>uri</value>.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
312 Перенаправление происходит уже после завершения обработчика Perl.
760
f0e3d07c66d8 Documented $r->log_error method, redirection limitation, removed outdated info.
Vladimir Homutov <vl@nginx.com>
parents: 589
diff changeset
313 <note>
2413
c6581f9aefa3 Documented Perl $r->internal_redirect() fixes.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 1842
diff changeset
314 Начиная с версии 1.17.2 метод принимает экранированные URI и
c6581f9aefa3 Documented Perl $r->internal_redirect() fixes.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 1842
diff changeset
315 поддерживает перенаправления в именованные location.
760
f0e3d07c66d8 Documented $r->log_error method, redirection limitation, removed outdated info.
Vladimir Homutov <vl@nginx.com>
parents: 589
diff changeset
316 </note>
f0e3d07c66d8 Documented $r->log_error method, redirection limitation, removed outdated info.
Vladimir Homutov <vl@nginx.com>
parents: 589
diff changeset
317 </tag-desc>
f0e3d07c66d8 Documented $r->log_error method, redirection limitation, removed outdated info.
Vladimir Homutov <vl@nginx.com>
parents: 589
diff changeset
318
f0e3d07c66d8 Documented $r->log_error method, redirection limitation, removed outdated info.
Vladimir Homutov <vl@nginx.com>
parents: 589
diff changeset
319 <tag-name><literal>$r->log_error(<value>код_ошибки</value>,
f0e3d07c66d8 Documented $r->log_error method, redirection limitation, removed outdated info.
Vladimir Homutov <vl@nginx.com>
parents: 589
diff changeset
320 <value>сообщение</value>)</literal></tag-name>
f0e3d07c66d8 Documented $r->log_error method, redirection limitation, removed outdated info.
Vladimir Homutov <vl@nginx.com>
parents: 589
diff changeset
321 <tag-desc>
f0e3d07c66d8 Documented $r->log_error method, redirection limitation, removed outdated info.
Vladimir Homutov <vl@nginx.com>
parents: 589
diff changeset
322 записывает указанное <value>сообщение</value> в
3089
23b9cbb0c11d Documented $r->log_error() logging level.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2413
diff changeset
323 <link doc="../ngx_core_module.xml" id="error_log"/>
23b9cbb0c11d Documented $r->log_error() logging level.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2413
diff changeset
324 на уровне <literal>error</literal>.
760
f0e3d07c66d8 Documented $r->log_error method, redirection limitation, removed outdated info.
Vladimir Homutov <vl@nginx.com>
parents: 589
diff changeset
325 Если <value>код_ошибки</value> ненулевой, то к сообщению будет добавлен
f0e3d07c66d8 Documented $r->log_error method, redirection limitation, removed outdated info.
Vladimir Homutov <vl@nginx.com>
parents: 589
diff changeset
326 код ошибки и её описание.
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
327 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
328
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
329 <tag-name><literal>$r->print(<value>текст</value>, ...)</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
330 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
331 метод передаёт клиенту данные.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
332 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
333
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
334 <tag-name><literal>$r->request_body</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
335 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
336 возвращает тело запроса клиента при условии,
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
337 что тело не записано во временный файл.
966
95c3c3bbf1ce Text review.
Egor Nikitin <yegor.nikitin@gmail.com>
parents: 760
diff changeset
338 Для того чтобы тело запроса клиента гарантированно находилось в памяти,
79
0a45870d0160 Fixed cross-document links to use doc and id.
Maxim Dounin <mdounin@mdounin.ru>
parents: 76
diff changeset
339 нужно ограничить его размер с помощью
106
56457a474903 If text of the link is not provided, the @id is used.
Ruslan Ermilov <ru@nginx.com>
parents: 102
diff changeset
340 <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
341 и задать достаточной размер для буфера
106
56457a474903 If text of the link is not provided, the @id is used.
Ruslan Ermilov <ru@nginx.com>
parents: 102
diff changeset
342 <link doc="ngx_http_core_module.xml" id="client_body_buffer_size"/>.
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
343 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
344
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
345 <tag-name><literal>$r->request_body_file</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
346 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
347 возвращает имя файла, в котором хранится тело запроса клиента.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
348 По завершению обработки файл необходимо удалить.
966
95c3c3bbf1ce Text review.
Egor Nikitin <yegor.nikitin@gmail.com>
parents: 760
diff changeset
349 Для того чтобы тело запроса клиента всегда записывалось в файл,
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
350 следует включить
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
351 <link doc="ngx_http_core_module.xml" id="client_body_in_file_only"/>.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
352 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
353
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
354 <tag-name><literal>$r->request_method</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
355 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
356 возвращает HTTP-метод запроса клиента.
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->remote_addr</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 возвращает IP-адрес клиента.
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->flush</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 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
368
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
369 <tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
370 <literal>$r->sendfile(<value>имя</value>[,
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
371 <value>смещение</value>[,
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
372 <value>длина</value>]])</literal>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
373 </tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
374 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
375 передаёт клиенту содержимое указанного файла.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
376 Необязательные параметры
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 обработчика Perl.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
380 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
381
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
382 <tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
383 <literal>$r->send_http_header([<value>тип</value>])</literal>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
384 </tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
385 <tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
386 передаёт клиенту заголовок ответа.
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
387 Необязательный параметр <value>тип</value> устанавливает значение поля
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
388 <header>Content-Type</header> в заголовке ответа.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
389 Пустая строка в качестве типа запрещает передачу поля
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
390 <header>Content-Type</header>.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
391 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
392
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
393 <tag-name><literal>$r->status(<value>код</value>)</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
394 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
395 устанавливает код ответа.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
396 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
397
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
398 <tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
399 <literal>$r->sleep(<value>миллисекунды</value>,
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
400 <value>обработчик</value>)</literal>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
401 </tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
402 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
403 устанавливает указанный обработчик
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
404 и останавливает обработку запроса на заданное время.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
405 nginx в это время продолжает обрабатывать другие запросы.
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
406 По истечении указанного времени nginx вызовет установленный обработчик.
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
407 Обратите внимание, что нужно передавать ссылку на функцию обработчика.
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
408 Для передачи данных между обработчиками следует использовать
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
409 <literal>$r->variable()</literal>.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
410 Пример:
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
411 <example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
412 package hello;
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 use nginx;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
415
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
416 sub handler {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
417 my $r = shift;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
418
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
419 $r->discard_request_body;
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
420 $r->variable("var", "OK");
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
421 $r->sleep(1000, <emphasis>\&amp;next</emphasis>);
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
422
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
423 return OK;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
424 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
425
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
426 sub <emphasis>next</emphasis> {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
427 my $r = shift;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
428
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
429 $r->send_http_header;
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
430 $r->print($r->variable("var"));
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
431
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
432 return OK;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
433 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
434
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
435 1;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
436
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
437 __END__
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
438 </example>
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
439 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
440
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
441 <tag-name><literal>$r->unescape(<value>текст</value>)</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
442 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
443 декодирует текст, заданный в виде “%XX”.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
444 </tag-desc>
76
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 <tag-name><literal>$r->uri</literal></tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
447 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
448 возвращает URI запроса.
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
449 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
450
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
451 <tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
452 <literal>$r->variable(<value>имя</value>[,
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
453 <value>значение</value>])</literal>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
454 </tag-name>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
455 <tag-desc>
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
456 возвращает или устанавливает значение указанной переменной.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
457 Переменные локальны для каждого запроса.
415
c640e00858ed Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 304
diff changeset
458 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
459
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
460 </list>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
461 </para>
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 </section>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
464
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
465 </module>