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