Limit Conn#
Позволяет ограничить число соединений по заданному ключу, в частности, число соединений с одного IP-адреса. Задает зону разделяемой памяти и максимально допустимое число соединений для одного значения ключа. При превышении этого числа сервер закроет соединение. Например, директивы разрешают одновременно обрабатывать не более одного соединения с одного IP-адреса. Допустимо одновременное указание нескольких директив limit_conn, при этом будет срабатывать любое из ограничений. Директивы наследуются с предыдущего уровня конфигурации при условии, что на данном уровне не описаны свои директивы limit_conn. Включает режим пробного запуска. В данном режиме число соединений не ограничивается, однако в зоне разделяемой памяти текущее число избыточных соединений учитывается как обычно. По умолчанию stream, server Задает желаемый уровень записи в лог случаев ограничения числа соединений. Задает параметры зоны разделяемой памяти, которая хранит состояние для разных значений ключа. Состояние в частности содержит текущее число соединений. В качестве ключа может использоваться текст, переменные и их комбинации. Запросы с пустым значением ключа не учитываются. Пример использования: Здесь в качестве ключа используется IP-адрес клиента, задаваемый переменной Длина значения $binary_remote_addr равна 4 байтам для IPv4-адресов или 16 байтам для IPv6-адресов. При этом размер состояния всегда равен 32 или 64 байтам на 32-битных платформах и 64 байтам на 64-битных. В зоне размером 1 мегабайт может разместиться около 32 тысяч состояний размером 32 байта или 16 тысяч состояний размером 64 байта. При переполнении зоны сервер закроет соединение. хранит результат ограничения числа соединений: PASSED, REJECTED или REJECTED_DRY_RUNПример конфигурации#
stream {
limit_conn_zone $binary_remote_addr zone=addr:10m;
...
server {
...
limit_conn addr 1;
limit_conn_log_level error;
}
}
Директивы#
limit_conn#
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
...
limit_conn addr 1;
}
limit_conn_dry_run#
limit_conn_log_level#
limit_conn_log_level
info
| notice
| warn
| error
;limit_conn_log_level error;
limit_conn_zone#
limit_conn_zone $binary_remote_addr zone=addr:10m;
$binary_remote_addr
.Встроенные переменные#
$limit_conn_status
#