nginx try_files & drupal

Igor Sysoev is at rambler-co.ru
Fri Oct 9 18:51:12 MSD 2009


On Fri, Oct 09, 2009 at 09:32:54PM +0700, Denis F. Latypoff wrote:

> Hello Igor,
> 
> Friday, October 9, 2009, 8:59:25 PM, you wrote:
> 
> > On Fri, Oct 09, 2009 at 05:47:51PM +0400, Vasiliy G Tolstov wrote:
> 
> >> > Вместо
> >> > 
> >> >  location ~ "^/(CHANGELOG|COPYRIGHT|INSTALL\.mysql|INSTALL\.pgsql|INSTALL|LICENSE|MAINTAINERS|UPGRADE)\.txt" {
> >> >    deny all;
> >> >  }
> >> > 
> >> > лучше сделать
> >> >    location = /CHANGELOG { deny all; }
> >> >    location = /INSTALL.mysql { deny all; }
> >> >    location = /INSTALL.pgsql { deny all; }
> >> >    location = /INSTALL { deny all; }
> >> >    и т.д.
> >> > 
> >> > 
> >> 
> >> А если таких location =200 ? тоже стоит сделать location для каждого или
> >> регуляркой?
> 
> > В этом случае регулярное выражение может быть быстрее.
> 
> 99% запросов в этот location не попадут, но каждый из них
> будет проверятся на соответствие этому регулярному выражению, а в
> итоге уйдет в location / { }.
> 
> Так что думаю сбалансированное дерево из 200 элементов в этом случае
> предпочтительней. Тем более, что в худшем случае будет log_e(200) = 5
> memcpy() вызовов, и неизвестно во что скомпилится регулярка с 200
> словами.
> 
> Ы?

Там дерево не совсем сбалансировано, но, возможно, да, оно может оказаться
быстрее такого регулярного выражения.


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





More information about the nginx-ru mailing list