Active connections are growing in regexp-ed location with alias

Maxim Dounin mdounin на
Пн Май 28 10:47:15 UTC 2012


On Mon, May 28, 2012 at 03:39:44AM -0400, bodomic wrote:

> Hi there,
> We've found an undefined behavior in certain condition, tend to consider
> this as a bug.
> 'If alias is used inside a location defined with a regular expression
> then such regular expression should contain captures and alias should
> refer to these captures (0.7.40)'. If, contrary, we're mistakenly using
> a regexp with selection but alias does not contain $1 variable, we're
> getting Not Found errors for some random substrings of alias value. More
> on that, active connections are growing in this situation until
> workers*clients number is reached, and then nginx stops accepting
> connections, causing Connection Timed Out on client.
> location ~* ^/data_15/hot/(article|news)/([0-9]+)\.htm$ { 
>           alias /opt/; 
>  }
> In error log we can see mostly "open() "/opt/" failed
> (2: No such file or directory)", though sometimes path is
> '/opt/^P' or
> '/opt/^A' or even
> '/opt/<99>;96>I?<9E>^WIj?1X?7m<8A>^A"'.

Конфиг выглядит именно так как приведено, или всё-таки ещё и 
try_files используется?


> nginx -V
> nginx version: nginx/1.0.12

Если try_files используется - то обновитья на 1.2.0+, пройдёт.  
Если нет - то лучше тоже обновиться, и если не пройдёт - то debug 
log в студию, см.

Maxim Dounin

Подробная информация о списке рассылки nginx-ru