if (!-f $request_filename)

Aleksej Novikov aleksej at novikov.lv
Wed Jun 21 14:05:39 MSD 2006


Hello Igor,

Wednesday, June 21, 2006, 12:48:33 PM, you wrote:

Извиняюсь, всё же ступил. Оказалост дело в том, что в конце описан ещё
один location для выдачи статики

location ~*^.+.(htm|html|gz)$ {
            root   /data/www/htdocs/cache;
                 expires      600s;
        }

Получается, что по запросу test.htm выполнялся именно он. А проверка
на файл не отрабатывала. Тогда вопрос по прежнему актуален. Как
заставить отработать проверку на файл прежде чем вышеописанный
location.

Спасибо.



> 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







More information about the nginx-ru mailing list