comparison xml/ru/docs/stream/ngx_stream_map_module.xml @ 1743:3d686cb47c2c

Documented the map module in stream.
author Yaroslav Zhuravlev <yar@nginx.com>
date Tue, 05 Jul 2016 17:58:34 +0300
parents xml/ru/docs/http/ngx_http_map_module.xml@8aa362a99f7c
children c6b5826b64f7
comparison
equal deleted inserted replaced
1742:c511b73da3a9 1743:3d686cb47c2c
1 <?xml version="1.0"?>
2
3 <!--
4 Copyright (C) Igor Sysoev
5 Copyright (C) Nginx, Inc.
6 -->
7
8 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
9
10 <module name="Модуль ngx_stream_map_module"
11 link="/ru/docs/stream/ngx_stream_map_module.html"
12 lang="ru"
13 rev="1">
14
15 <section id="summary">
16
17 <para>
18 Модуль <literal>ngx_stream_map_module</literal> (1.11.2) создаёт переменные,
19 значения которых зависят от значений других переменных.
20 </para>
21
22 </section>
23
24
25 <section id="example" name="Пример конфигурации">
26
27 <para>
28 <example>
29 map $remote_addr $limit {
30 127.0.0.1 "";
31 default $binary_remote_addr;
32 }
33
34 limit_conn_zone $limit zone=addr:10m;
35 limit_conn addr 1;
36 </example>
37 </para>
38
39 </section>
40
41
42 <section id="directives" name="Директивы">
43
44 <directive name="map">
45 <syntax block="yes">
46 <value>строка</value>
47 <value>$переменная</value></syntax>
48 <default/>
49 <context>stream</context>
50
51 <para>
52 Создаёт новую переменную, значение которой
53 зависит от значений одной или более исходных переменных,
54 указанных в первом параметре.
55 </para>
56
57 <para>
58 <note>
59 Поскольку переменные вычисляются только в момент использования,
60 само по себе наличие даже большого числа объявлений переменных
61 “<literal>map</literal>” не влечёт за собой никаких дополнительных
62 расходов на обработку соединений.
63 </note>
64 </para>
65
66 <para>
67 Параметры внутри блока <literal>map</literal> задают соответствие
68 между исходными и результирующими значениями.
69 </para>
70
71 <para>
72 Исходные значения задаются строками или регулярными выражениями.
73 </para>
74
75 <para>
76 Строки проверяются без учёта регистра.
77 </para>
78
79 <para>
80 Перед регулярным выражением ставится символ “<literal>~</literal>”,
81 если при сравнении следует учитывать регистр символов, либо символы
82 “<literal>~*</literal>”, если регистр символов учитывать не нужно.
83 Регулярное выражение может содержать именованные и позиционные выделения,
84 которые могут затем использоваться в других директивах совместно с
85 результирующей переменной.
86 </para>
87
88 <para>
89 Если исходное значение совпадает с именем одного из специальных параметров,
90 описанных ниже, перед ним следует поставить символ “<literal>\</literal>”.
91 </para>
92
93 <para>
94 В качестве результирующего значения можно указать текст,
95 переменную и их комбинации.
96 </para>
97
98 <para>
99 Директива также поддерживает три специальных параметра:
100 <list type="tag">
101 <tag-name><literal>default</literal> <value>значение</value></tag-name>
102 <tag-desc>
103 задаёт результирующее значение, если исходное значение не
104 совпадает ни с одним из перечисленных.
105 Если параметр <literal>default</literal> не указан, результирующим значением
106 по умолчанию будет пустая строка.
107 </tag-desc>
108
109 <tag-name><literal>hostnames</literal></tag-name>
110 <tag-desc>
111 указывает, что в качестве исходных значений можно
112 использовать маску для первой или последней части имени хоста, например,
113 <example>
114 *.example.com 1;
115 example.* 1;
116 </example>
117 Вместо двух записей
118 <example>
119 example.com 1;
120 *.example.com 1;
121 </example>
122 можно использовать одну:
123 <example>
124 .example.com 1;
125 </example>
126 Этот параметр следует указывать перед списком значений.
127 </tag-desc>
128
129 <tag-name><literal>include</literal> <value>файл</value></tag-name>
130 <tag-desc>
131 включает файл со значениями.
132 Включений может быть несколько.
133 </tag-desc>
134
135 </list>
136 </para>
137
138 <para>
139 Если исходному значению соответствует несколько из указанных вариантов,
140 например, одновременно подходят и маска, и регулярное выражение,
141 будет выбран первый подходящий вариант в следующем порядке приоритета:
142 <list type="enum">
143
144 <listitem>
145 строковое значение без маски
146 </listitem>
147
148 <listitem>
149 самое длинное строковое значение с маской в начале,
150 например “<literal>*.example.com</literal>”
151 </listitem>
152
153 <listitem>
154 самое длинное строковое значение с маской в конце,
155 например “<literal>mail.*</literal>”
156 </listitem>
157
158 <listitem>
159 первое подходящее регулярное выражение
160 (в порядке следования в конфигурационном файле)
161 </listitem>
162
163 <listitem>
164 значение по умолчанию (<literal>default</literal>)
165 </listitem>
166
167 </list>
168 </para>
169
170 </directive>
171
172
173 <directive name="map_hash_bucket_size">
174 <syntax><value>размер</value></syntax>
175 <default>32|64|128</default>
176 <context>stream</context>
177
178 <para>
179 Задаёт размер корзины в хэш-таблицах для переменных <link id="map"/>.
180 Значение по умолчанию зависит от размера строки кэша процессора.
181 Подробнее настройка хэш-таблиц обсуждается в отдельном
182 <link doc="../hash.xml">документе</link>.
183 </para>
184
185 </directive>
186
187
188 <directive name="map_hash_max_size">
189 <syntax><value>размер</value></syntax>
190 <default>2048</default>
191 <context>stream</context>
192
193 <para>
194 Задаёт максимальный размер хэш-таблиц для переменных <link id="map"/>.
195 Подробнее настройка хэш-таблиц обсуждается в отдельном
196 <link doc="../hash.xml">документе</link>.
197 </para>
198
199 </directive>
200
201 </section>
202
203 </module>