if (!-f $request_filename)

Igor Sysoev is at rambler-co.ru
Wed Jun 21 14:17:38 MSD 2006


On Wed, 21 Jun 2006, Aleksej Novikov wrote:

> Извиняюсь, всё же ступил. Оказалост дело в том, что в конце описан ещё
> один location для выдачи статики
>
> location ~*^.+.(htm|html|gz)$ {
>            root   /data/www/htdocs/cache;
>                 expires      600s;
>        }
>
> Получается, что по запросу test.htm выполнялся именно он. А проверка
> на файл не отрабатывала. Тогда вопрос по прежнему актуален. Как
> заставить отработать проверку на файл прежде чем вышеописанный
> location.

Можно "if (!-f $request_filename)" поставить на уровне сервера.

>> On Wed, 21 Jun 2006, Aleksej Novikov wrote:
>
>>> Спасибо, Игорь, но всё без именений.
>>>> nginx version: nginx/0.3.49
>>> По прежнему 404 ошибка и никаких обращений к backend.
>
>> Тогда нужен отладчоный лог.
>
>>>> On Wed, 21 Jun 2006, Aleksej Novikov wrote:
>>>
>>>>>  Может я туплю, однако никак не выходит.
>>>>>
>>>>>  Задача проверить существование файла, и если его нет, то сделать
>>>>>  запрос на backend.
>>>>>
>>>>>  Вот такой вот конфиг у меня.
>>>>>
>>>>> server {
>>>>>        listen       80;
>>>>>        server_name  cache;
>>>>>        access_log  /var/log/nginx/cache.access.log;
>>>>> location / {
>>>>>        root  /data/www/htdocs/cache;
>>>>>        autoindex on;
>>>>>                if (!-f $request_filename) {
>>>>>                rewrite (.*)        /index.php?rfname=$request_filename  last;
>>>>>                }
>>>>>        proxy_pass         http://127.0.0.1:8888/;
>>>>>        proxy_redirect     off;
>>>>>        proxy_set_header   Host             $host;
>>>>>        proxy_set_header   X-Real-IP        $remote_addr;
>>>>>        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
>>>>>        }
>>>>> }
>>>>>
>>>>> Обращаюст к файлу test.htm (понятное дело он не существует)
>>>>> на экране вижу - 404 by nginx.
>>>>> А в логе только одна строка.
>>>>>
>>>>> 10.10.10.2 - - [21/Jun/2006:12:12:47 +0300] "GET /test.htm HTTP/1.1" 404 169 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
>>>>>
>>>>> Подскажите плиз, что не так ?
>>>
>>>> У меня подобный конфиг выдаёт 500. Нужно примерно так:
>>>
>>>>      location / {
>>>>          root  /data/www/htdocs/cache;
>>>>          if (!-f $request_filename) {
>>>>              rewrite (.*)
>>>> /index.php?rfname=$request_filename  last;
>>>>          }
>>>>      }
>>>
>>>>      location = /index.php {
>>>>          proxy_pass         http://127.0.0.1:8888/;
>>>>          ...
>>>>      }
>>>
>>>
>>>> Игорь Сысоев
>>>> http://sysoev.ru
>>>
>>>
>>>
>>>
>>> --
>>> Best regards,
>>> Aleksej
>>> ICQ: 113882950
>>> GSM:371.936.86.24
>>>
>>>
>>>
>>>
>>>
>>>
>
>> Игорь Сысоев
>> http://sysoev.ru
>
>
>
>
> -- 
> Best regards,
> Aleksej
> ICQ: 113882950
> GSM:371.936.86.24
>
>
>
>
>
>

Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list