Maximum URL length and the limit_zone module
marc at corky.net
marc at corky.net
Fri Aug 10 10:19:54 MSD 2007
Hi,
Igor Sysoev wrote:
> On Thu, Aug 09, 2007 at 01:31:57PM +0100, Just Marc wrote:
>
>
>> I have some long non-English file names that when url-encoded and
>> prepended with a path, exceed the 255 limit check in the limit_zone module:
>>
>>
>> I am using limit_zone like so:
>> limit_zone one $request_uri 10m;
>>
>>
>> http/modules/ngx_http_limit_zone_module.c:ngx_http_limit_zone_handler
>>
>> if (len > 255) {
>> ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
>> "the value of the \"%V\" variable "
>> "is more than 255 bytes: \"%V\"",
>> &ctx->var, vv);
>> return NGX_DECLINED;
>> }
>>
>> Is there any special reason to limit this to 255 bytes? I think this
>> can be increased safely, no?
>>
>
> It can be increased to 65536.
>
>
Great
>> Is there a way to hash the request_uri and use that for limit_zone?
>>
>
> $request_uri is (as in Apache) unparsed uri+args. I do not think that is
> good key. It's better to use $uri - it already decoded (so it may be
> up to 3 times less) and without $args.
>
>
I have this code, where post_action is supposed to run /done when the
request ends:
location /protected/ {
internal;
alias /;
post_action /done;
}
Unfortunately, it seems that "/done" is what is passed as $uri to
limit_zone. Is there anything else I can do?
Marc
Unfortunately in my test it appears to be getting only "/done":
More information about the nginx
mailing list