Re: простая статика и регулярки
Mihail Nasedkin
m.nasedkin at gmail.com
Fri Jun 27 02:58:19 UTC 2014
Спасибо, Максим.
26.06.14, Maxim Dounin<mdounin at 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
>
> Вам показалось, процитированное регулярное выражение - не
> работает.
Реально работает, я голову сломал.
>
>> Вопрос: почему не работает "вроде более правильная" регулярка
>> location ~ ^/(images|css|js|files)/ { ... ? (символ начала строки
>> первый)
>
> А эта - как раз должна работать.
> Видимо, результаты тестирования - обратны тому, что на самом деле.
Не работает, я голову сломал.
>
>> 2. Далее пытаюсь для подкаталога /images/foo/ сделать отдельный локейшн:
>> location ~ ^/images/foo/ {
>> root /path/to/static;
>> access_log off;
>> add_header Content-Type image/jpeg;
>> expires max;
>> }
>> Получаю 403 ошибку, хотя, повторюсь, в первом локейшене все нормально
>> отдает, т.е. права на файлы точно открыты.
>
> В error log'е должно быть написано, почему ошибка. Подозреваю,
> что вы попытались запросить индекс, в то время как его нет, а
> autoindex - запрещён.
>
> http://nginx.org/r/index
> http://nginx.org/r/autoindex
>
>> Подскажите, пожалуйста, в чем косяки?
>
> Основная проблема в том, что вы используете регулярные выражения
> там, где без них можно прекрасно обойтись. Используйте префиксные
> location'ы - и конфигурация станет куда проще и понятнее.
Хорошо, сделал как надо:
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 at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
--
---
С уважением,
Михаил Наседкин
Подробная информация о списке рассылки nginx-ru