Hello!
On Fri, Jun 27, 2014 at 08:58:19AM +0600, Mihail Nasedkin wrote:
> Спасибо, Максим.
>
> 26.06.14, Maxim Dounin<mdounin@mdounin.ru> написал(а):
> > Hello!
> >
> > On Thu, Jun 26, 2014 at 03:42:35PM +0600, Mihail Nasedkin wrote:
> >
> >> Доброго всем,
> >>
> >> 1. Странная регулярка для статики:
> >>
> >> location ~ /^(images|css|js|files)/ {
> >> root /path/to/static; # A request for "/images/foo.ext" will
> >> return the file /path/to/static/images/foo.ext
> >> access_log off;
> >> expires 30d;
> >> }
> >> Эта регулярка работает, в т.ч. для запросов типа /images/foo/bar.jpg
> >
> > Вам показалось, процитированное регулярное выражение - не
> > работает.
>
> Реально работает, я голову сломал.
Не работает. Вы наблюдаете эффект от сложного конфига, в котором
запрос попадает не туда, куда вам кажется, и от этого кажется, что
работает.
Вынесите соответствующее регулярное выражение в отдельный блок
server, в конфиг вида:
server {
server_name foo;
location / {
return 200 "this is location /\n";
}
location ~ /^(images|css|js|files)/ {
return 200 "this is location /^(images|css|js|files)/\n";
}
}
И убедитесь, что оно не работает:
$ fetch -qo - http://localhost:8080/images/foo.jpg
this is location /
Что конкретно происходит в вашем конфиге, и почему вам кажется,
что оно работает - "по хвосту" сказать нельзя. Нужно смотреть на
весь блок server{} как минимум.
[...]
> Хорошо, сделал как надо:
>
> location /static/ {
> root /path/to/static;
> access_log off;
> expires max;
> }
>
> Но почему возникают проблемы с доступом к файлу open()
> "/path/to/static/foo/bar.ext" failed (13: Permission denied)?
> Ведь в локации с регулярным выражением этот файл отдает! Права доступа
> проверил сотню раз. Я так понимаю, построение автоиндекса каталога не
> задействовано, запрошен конкретный файл.
Насколько я понимаю, с этим вы уже разобрались, и дело было в
правах.
--
Maxim Dounin
http://nginx.org/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru