Re: try_files не редиректит сразу на последний аргумент?
cronfy
cronfy на gmail.com
Вт Окт 19 23:06:14 MSD 2010
>> Не получается осознать алгоритм работы try_files. Такое впечатление,
>> что после того, как он *не нашел* указанные файлы, он продолжает
>> обрабатывать директивы из текущего location, а не делает внутренний
>> редирект. Имеем такой конфиг:
>>
>> location / {
>> try_files $uri @backend;
>> # return 403;
>> }
>>
>> location @backend {
>> proxy_set_header Host $host;
>> proxy_pass http://127.0.0.1:8091$request_uri;
>> }
>>
>> Если return закомментирован, то все работает как описано в
>> документации. Но если его раскомментировать, то и на существующие, и
>> на несуществующие файлы отдается Forbidden.
>>
>> nginx version: nginx/0.8.50
>>
>> Что я не так понял?
>
> Директива "return" работает в фазе rewrite, это раньше чем фаза
> try_files. Поэтому если написано "return 403" - до try_files дело
> просто не дойдёт.
Понятно, спасибо. Вопрос вот с чем связан - в перловом обработчике
есть проверка существования файла. Если файл не в кэше, проверка
занимает некоторое время, а воркер в это время блокируется на перле. Я
хотел с помощью try_files "прогреть" кэш ОС, в надежде, что воркер
целиком блокироваться не будет. А как на самом деле - будет также
блокироваться на ФС или обработка параллельных запросов во время
try_files будет идти?
--
// cronfy
Подробная информация о списке рассылки nginx-ru