view xml/ru/docs/http/ngx_http_map_module.xml @ 617:368a449e85b8

Expanded documentation of what various parameters of the "listen" directive related to socket options do. While here, documented the fact that accept filters also work on NetBSD.
author Ruslan Ermilov <ru@nginx.com>
date Thu, 02 Aug 2012 13:24:07 +0000
parents 764fbac1b8b4
children 77a3314c74a7
line wrap: on
line source

<?xml version="1.0"?>

<!--
  Copyright (C) Igor Sysoev
  Copyright (C) Nginx, Inc.
  -->

<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">

<module name="Модуль ngx_http_map_module"
        link="/ru/docs/http/ngx_http_map_module.html"
        lang="ru"
        rev="1">

<section id="summary">

<para>
Модуль <literal>ngx_http_map_module</literal> создаёт переменные,
значения которых зависят от значений других переменных.
</para>

</section>


<section id="example" name="Пример конфигурации">

<para>
<example>
map $http_host $name {
    hostnames;

    default       0;

    example.com   1;
    *.example.com 1;
    example.org   2;
    *.example.org 2;
    .example.net  3;
    wap.*         4;
}

map $http_user_agent $mobile {
    default       0;
    "~Opera Mini" 1;
}
</example>
</para>

</section>


<section id="directives" name="Директивы">

<directive name="map">
<syntax block="yes">
    <value>строка</value>
    <value>$переменная</value></syntax>
<default/>
<context>http</context>

<para>
Создаёт новую переменную, значение которой
зависит от значений одной или более исходных переменных,
указанных в первом параметре.
<note>
До версии 0.9.0 в качестве первого параметра можно было
указать только одну переменную.
</note>
</para>

<para>
Параметры внутри блока <literal>map</literal> задают соответствие
между исходными и результирующими значениями.
</para>

<para>
Исходные значения задаются строками или регулярными выражениями (0.9.6).
</para>

<para>
Перед регулярным выражением ставится символ “<literal>~</literal>”,
если при сравнении следует учитывать регистр символов, либо символы
“<literal>~*</literal>” (1.0.4), если регистр символов учитывать не нужно.
Регулярное выражение может содержать именованные и позиционные выделения,
которые могут затем использоваться в других директивах совместно с
результирующей переменной.
</para>

<para>
Если исходное значение совпадает с именем одного из специальных параметров
(см. ниже), перед ним следует поставить символ “<literal>\</literal>”.
</para>

<para>
В качестве результирующего значения можно указать строку
или другую переменную (0.9.0).
</para>

<para>
Директива также поддерживает три специальных параметра:
<list type="tag">
<tag-name><literal>default</literal> <value>значение</value></tag-name>
<tag-desc>
задаёт результирующее значение, если исходное значение не
совпадает ни с одним из перечисленных.
Если параметр <literal>default</literal> не указан, результирующим значением
по умолчанию будет пустая строка.
</tag-desc>

<tag-name><literal>hostnames</literal></tag-name>
<tag-desc>
указывает, что в качестве исходных значений можно
использовать маску для первой или последней части имени хоста, например,
<example>
*.example.com 1;
example.*     1;
</example>
Вместо двух записей
<example>
example.com   1;
*.example.com 1;
</example>
можно использовать одну:
<example>
.example.com  1;
</example>
Этот параметр следует указывать перед списком значений.
</tag-desc>

<tag-name><literal>include</literal> <value>файл</value></tag-name>
<tag-desc>
включает файл со значениями.
Включений может быть несколько.
</tag-desc>

</list>
</para>

<para>
Если исходному значению соответствует несколько из указанных вариантов,
например, одновременно подходят и маска, и регулярное выражение,
будет выбран первый подходящий вариант в следующем порядке приоритета:
<list type="enum">

<listitem>
строковое значение без маски
</listitem>

<listitem>
самое длинное строковое значение с маской в начале,
например “<literal>*.example.com</literal>”
</listitem>

<listitem>
самое длинное строковое значение с маской в конце,
например “<literal>mail.*</literal>”
</listitem>

<listitem>
первое подходящее регулярное выражение
(в порядке следования в конфигурационном файле)
</listitem>

<listitem>
значение по умолчанию (<literal>default</literal>)
</listitem>

</list>
</para>

</directive>


<directive name="map_hash_bucket_size">
<syntax><value>размер</value></syntax>
<default>32|64|128</default>
<context>http</context>

<para>
Задаёт размер корзины в хэш-таблицах для переменных <link id="map"/>.
Значение по умолчанию зависит от размера строки кэша процессора.
Подробнее смотрите в документе по
<link doc="../hash.xml">настройке хэшей</link>.
</para>

</directive>


<directive name="map_hash_max_size">
<syntax><value>размер</value></syntax>
<default>2048</default>
<context>http</context>

<para>
Задаёт максимальный размер хэш-таблиц для переменных <link id="map"/>.
Подробнее смотрите в документе по
<link doc="../hash.xml">настройке хэшей</link>.
</para>

</directive>

</section>

</module>