if () {limit_rate ...} на уровне server{}

Igor Sysoev is at rambler-co.ru
Thu Jan 26 10:46:31 MSK 2006


On Thu, 26 Jan 2006, Alexey Polyakov wrote:

> У меня при попытке поместить конструкцию if () {limit_rate ...} на
> уровне server{} - nginx -t ругается, что директива limit_rate не
> разрешена в данном месте. При переносе внутрь location работает
> нормально. Это так и должно быть? В мануале написано, что limit_rate
> разрешено на всех уровнях.

Исправлю в документации. Реально limit_rate можно задавать на уровнях
http, server, location, if в location

Можно было бы сделать "if в server", но это лишь будет вводить
в заблуждение, поскольку эта конфигурация пропадёт при попадании в
любой location. Внутри "if в server" разрешены только директивы
ngx_http_rewrite_module, они могут выполнятся во время запроса,
а значения всех остальных директив - это статические данные, которые
создаются во время конфгурации, и при выборе server или location
просто копируется указатель на эти статические данные.

> Кстати, в мануале также написано, что limit_rate задается в килобайтах
> в секунду, а в реальности насколько я понимаю все же в байтах в
> секунду.

Да, в байтах. Исправлю.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list