comparison xml/ru/docs/stream/ngx_stream_geo_module.xml @ 1751:3768eb3d9c6c

Documented the geo module in stream.
author Yaroslav Zhuravlev <yar@nginx.com>
date Thu, 14 Jul 2016 20:33:05 +0300
parents xml/ru/docs/http/ngx_http_geo_module.xml@9dab69f2b71d
children 71e505ea3cb3
comparison
equal deleted inserted replaced
1750:0e591e97737c 1751:3768eb3d9c6c
1 <?xml version="1.0"?>
2
3 <!--
4 Copyright (C) Nginx, Inc.
5 -->
6
7 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
8
9 <module name="Модуль ngx_stream_geo_module"
10 link="/ru/docs/stream/ngx_stream_geo_module.html"
11 lang="ru"
12 rev="1">
13
14 <section id="summary">
15
16 <para>
17 Модуль <literal>ngx_http_geo_module</literal> (1.11.3) создаёт переменные,
18 значения которых зависят от IP-адреса клиента.
19 </para>
20
21 </section>
22
23
24 <section id="example" name="Пример конфигурации">
25
26 <para>
27 <example>
28 geo $geo {
29 default 0;
30
31 127.0.0.1 2;
32 192.168.1.0/24 1;
33 10.1.0.0/16 1;
34
35 ::1 2;
36 2001:0db8::/32 1;
37 }
38 </example>
39 </para>
40
41 </section>
42
43
44 <section id="directives" name="Директивы">
45
46 <directive name="geo">
47 <syntax block="yes">[<value>$адрес</value>] <value>$переменная</value></syntax>
48 <default/>
49 <context>stream</context>
50
51 <para>
52 Описывает для указанной переменной зависимость значения от
53 IP-адреса клиента.
54 По умолчанию адрес берётся из переменной <var>$remote_addr</var>,
55 но его также можно получить из другой переменной, например:
56 <example>
57 geo $arg_remote_addr $geo {
58 ...;
59 }
60 </example>
61 </para>
62
63 <para>
64 <note>
65 Поскольку переменные вычисляются только в момент использования,
66 само по себе наличие даже большого числа объявлений переменных
67 “<literal>geo</literal>” не влечёт за собой никаких дополнительных
68 расходов на обработку соединений.
69 </note>
70 </para>
71
72 <para>
73 Если значение переменной не представляет из себя правильный IP-адрес,
74 то используется адрес “<literal>255.255.255.255</literal>”.
75 </para>
76
77 <para>
78 Адреса задаются либо префиксами в формате CIDR
79 (включая одиночные адреса), либо в виде диапазонов.
80 </para>
81
82 <para>
83 Также поддерживаются следующие специальные параметры:
84 <list type="tag">
85
86 <tag-name><literal>delete</literal></tag-name>
87 <tag-desc>
88 удаляет описанную сеть.
89 </tag-desc>
90
91 <tag-name><literal>default</literal></tag-name>
92 <tag-desc>
93 значение переменной, если адрес клиента не соответствует
94 ни одному из заданных адресов.
95 При задании адресов в формате CIDR
96 вместо <literal>default</literal> можно использовать
97 “<literal>0.0.0.0/0</literal>” и “<literal>::/0</literal>”.
98 Если параметр <literal>default</literal> не указан, значением
99 по умолчанию будет пустая строка.
100 </tag-desc>
101
102 <tag-name><literal>include</literal></tag-name>
103 <tag-desc>
104 включает файл с адресами и значениями.
105 Включений может быть несколько.
106 </tag-desc>
107
108 <tag-name><literal>ranges</literal></tag-name>
109 <tag-desc>
110 указывает, что адреса задаются в виде диапазонов.
111 Этот параметр должен быть первым.
112 Для ускорения загрузки гео-базы нужно располагать адреса в порядке возрастания.
113 </tag-desc>
114
115 </list>
116 </para>
117
118 <para>
119 Пример:
120 <example>
121 geo $country {
122 default ZZ;
123 include conf/geo.conf;
124 delete 127.0.0.0/16;
125
126 127.0.0.0/24 US;
127 127.0.0.1/32 RU;
128 10.1.0.0/16 RU;
129 192.168.1.0/24 UK;
130 }
131 </example>
132 </para>
133
134 <para>
135 В файле <path>conf/geo.conf</path> могут быть такие строки:
136 <example>
137 10.2.0.0/16 RU;
138 192.168.2.0/24 RU;
139 </example>
140 </para>
141
142 <para>
143 В качестве значения выбирается максимальное совпадение, например,
144 для адреса 127.0.0.1 будет выбрано значение “<literal>RU</literal>”,
145 а не “<literal>US</literal>”.
146 </para>
147
148 <para>
149 Пример описания диапазонов:
150 <example>
151 geo $country {
152 ranges;
153 default ZZ;
154 127.0.0.0-127.0.0.0 US;
155 127.0.0.1-127.0.0.1 RU;
156 127.0.0.2-127.0.0.255 US;
157 10.1.0.0-10.1.255.255 RU;
158 192.168.1.0-192.168.1.255 UK;
159 }
160 </example>
161 </para>
162
163 </directive>
164
165 </section>
166
167 </module>