deny access to fallback location

Maxim Dounin mdounin на mdounin.ru
Вт Окт 12 19:54:55 MSD 2010


Hello!

On Tue, Oct 12, 2010 at 11:06:25AM -0400, a.a.vasiljev wrote:

> Здравствуйте.
> 
> Локаций в проекте немного и хочется
> запретить системные вызовы (проверку
> существует файл или нет) для
> несуществующих локаций. Вот так:
> 
>         location ^~ /с/ {
> 
>                 location = /с/с.nocache.js {
>                     # loader script
>                     ...
>                 }                                                       
>                                                
> 
>                 location ~ ^.+\.cache\. {
>                     # cache forever
>                     ...
>                 }                                                       
>                                                
>                 ...
>         }
> 
>         location = / {
>             try_files /maintenance.html /index.html;
>             expires 1s;
>         }
> 
>         location ~ .* {
>             deny all;
>         }
> 
> 
> последняя локация вроде бы должна
> резать все прочие запросы, но с ней nginx
> возвращает 403 и для /. Как быть? Имеет ли
> смысл вообще ограничивать запросы к
> диску?

При запросе в "/" у вас делается внутреннее перенаправление в 
"/index.html".

-             try_files /maintenance.html /index.html;
+             try_files /maintenance.html /index.html =404;

Подробнее читать тут:

http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#try_files

Just a side note: лучше вместо регулярного выражения использовать 
обычный location:

-         location ~ .* {
+         location / {

Maxim Dounin



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