Mercurial > hg > nginx-site
diff xml/ru/docs/http/ngx_http_limit_conn_module.xml @ 179:8cc01e2179a9
- Reflected recent changes made to ngx_http_limit_conn_module.
- Revamped documentation for ngx_http_limit_req_module.
- Translated ngx_http_limit_{conn,req}_module into English.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Mon, 14 Nov 2011 18:09:03 +0000 |
parents | xml/ru/docs/http/ngx_http_limit_zone_module.xml@40eec261c2a6 |
children | 9e7d0c9c7eaa |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xml/ru/docs/http/ngx_http_limit_conn_module.xml Mon Nov 14 18:09:03 2011 +0000 @@ -0,0 +1,158 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> + +<module name="Модуль ngx_http_limit_conn_module" + link="/ru/docs/http/ngx_http_limit_conn_module.html" + lang="ru"> + +<section id="summary"> + +<para> +Модуль <code>ngx_http_limit_conn_module</code> позволяет ограничить +число соединений по заданному ключу или, +как частный случай, число соединений с одного IP-адреса. +</para> + +<para> +Ограничиваются не любые соединения, а лишь те, в которых имеются +запросы, обрабатываемые сервером, и заголовок запроса уже прочитан. +</para> + +</section> + + +<section name="Пример конфигурации" id="example"> + +<para> +<example> +http { + limit_conn_zone $binary_remote_addr zone=addr:10m; + + ... + + server { + + ... + + location /download/ { + limit_conn addr 1; + } +</example> +</para> + +</section> + + +<section name="Директивы" id="directives"> + +<directive name="limit_conn"> +<syntax><argument>зона число</argument></syntax> +<default/> +<context>http</context> +<context>server</context> +<context>location</context> + +<para> +Директива задаёт максимально допустимое число соединений +для одного значения ключа. +При превышении этого числа в ответ на запрос сервер вернёт ошибку +<http-status code="503" text="Service Temporarily Unavailable"/>. +Например, директивы +<example> +limit_conn_zone $binary_remote_addr zone=addr:10m; + + server { + location /download/ { + limit_conn addr 1; + } +</example> +разрешают одновременно обрабатывать не более одного соединения с одного +IP-адреса. +</para> + +<para> +Допустимо одновременное указание нескольких директив <code>limit_conn</code>, +при этом будет срабатывать любое из ограничений. +</para> + +<para> +Директивы наследуются с предыдущего уровня при условии, что на данном уровне +не описаны свои директивы <code>limit_conn</code>. +</para> + +</directive> + + +<directive name="limit_conn_log_level"> +<syntax> +<value>info</value> | +<value>notice</value> | +<value>warn</value> | +<value>error</value> +</syntax> +<default>error</default> +<context>http</context> +<context>server</context> +<context>location</context> +<appeared-in>0.8.18</appeared-in> + +<para> +Директива задаёт желаемый уровень записи в лог случаев ограничения +числа соединений. +</para> + +</directive> + + +<directive name="limit_conn_zone"> +<syntax> + <argument>$переменная </argument> + <parameter>zone</parameter>=<argument>название</argument>:<argument>размер</argument> +</syntax> +<default/> +<context>http</context> + +<para> +Директива задаёт параметры зоны, которая хранит состояние +для разных значений ключа. +Состояние в частности хранит текущее число соединений. +Ключом является значение заданной переменной. +Пример использования: +<example> +limit_conn_zone $binary_remote_addr zone=addr:10m; +</example> +Здесь в качестве ключа используется IP-адрес клиента. +Обратите внимание, что вместо переменной <var>$remote_addr</var> +использована переменная <var>$binary_remote_addr</var>. +Длина значения переменной <var>$remote_addr</var> может колебаться +от 7 до 15 байт, при этом размер хранимого состояния составляет +либо 32, либо 64 байта на 32-битных платформах, и всегда 64 +байта на 64-битных. +Длина значения переменной <var>$binary_remote_addr</var> всегда +равна 4 байтам, при этом размер состояния всегда равен 32 байтам +на 32-битных платформах и 64 байтам на 64-битных. +В зоне размером 1 мегабайт может разместиться около 32 тысяч состояний +размером 32 байта, или 16 тысяч состояний размером 64 байта. +При переполнении зоны в ответ на последующие запросы сервер будет +возвращать ошибку +<http-status code="503" text="Service Temporarily Unavailable"/>. +</para> + +</directive> + +<directive name="limit_zone"> +<syntax><argument>$переменная название размер</argument></syntax> +<default/> +<context>http</context> + +<para> +Эта директива устарела в версии 1.1.8, вместо неё следует +использовать директиву <link id="limit_conn_zone"/>. +</para> + +</directive> + +</section> + +</module>