Re: Поведение try_files в зависимости от access_log
    Maxim Dounin 
    mdounin at mdounin.ru
       
    Wed Jun  3 14:27:32 UTC 2015
    
    
  
Hello!
On Wed, Jun 03, 2015 at 04:57:24PM +0300, Daniil wrote:
> Здравствуйте,
> 
> Есть следующий конфиг:
> 
> # например GET /apple/iphone/info
> location ~ .+/info$ {
>    index index.php;
>    try_files $uri $uri/ @php;
>    access_log bad_guys.log if=$is_bad_guy;
> }
> 
> location @php {...}
> 
> 
> Переменная $is_bad_guy вычисляется через цепочку map и может принимать
> значение 0 или 1.
> 
> Если $is_bad_guy = 0, то локация срабатывает как надо и try_files переходит
> на @php если не найдены файлы в root каталоги.
> 
> Но, если $is_bad_guy = 1 (срабатывает access_log), то сервер возвращает
> 404, в логе ошибок появляется сообщение "File not found" и обработка не
> доходит до @php.
> 
> В чем здесь может быть ошибка?
Ошибка где-то ещё, смотрите внимательно на конфиг целиком.
Например, к похожему эффекту может привести использование 
директивы if модуля rewrite в данном location'е, см.  
http://wiki.nginx.org/IfIsEvil.
-- 
Maxim Dounin
http://nginx.org/
    
    
Подробная информация о списке рассылки nginx-ru