The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Некорректная работа try_files, кто сталкивался?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Linux привязка / Linux)
Изначальное сообщение [ Отслеживать ]

"Некорректная работа try_files, кто сталкивался?"  +/
Сообщение от obl email(ok) on 25-Ноя-13, 12:34 
Столкнулся с таким поведением директивы try_files: файл есть и в первой и во второй директории, но отдается только из /tmp/2/$uri. По логике вещей должен отдать 1111.111 но отдает test. В чем может быть дело?

# wget -O - localhost/123.txt 2> /dev/null
2222.222
# cat /tmp/1/123.txt  /tmp/2/123.txt
1111.111
2222.222


location /tmp {
        alias /tmp/;
}


location / {
        index index.html index.php;
        error_page 404 = @try;
}

location  @try {
        try_files /tmp/1/$uri /tmp/2/$uri ;
}

# uname -a
Linux srv02 3.8.0-33-generic #48~precise1-Ubuntu SMP Thu Oct 24 16:28:06 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
# nginx  -V
nginx version: nginx/1.1.19
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-debug --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-auth-pam --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-echo --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-upstream-fair --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-dav-ext-module

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Некорректная работа try_files, кто сталкивался?"  +/
Сообщение от Miha (??) on 25-Ноя-13, 13:52 
А если без внутреннего перенаправления @try. Перенесите
try_files /tmp/1/$uri /tmp/2/$uri;
непосредственно в локейшн /
ЗЫЖ: не знаю насколько кретично, но не ставьте пробелы директивой знаком (;). Как тут try_files /tmp/1/$uri /tmp/2/$uri ;

>[оверквотинг удален]
> --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi
> --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy
> --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi
> --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-debug --with-http_addition_module
> --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module
> --with-http_image_filter_module --with-http_realip_module --with-http_stub_status_module
> --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6
> --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module
> --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-auth-pam --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-echo
> --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-upstream-fair --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-dav-ext-module

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Некорректная работа try_files, кто сталкивался?"  +/
Сообщение от obl email(ok) on 25-Ноя-13, 14:03 
> А если без внутреннего перенаправления @try. Перенесите
> try_files /tmp/1/$uri /tmp/2/$uri;
> непосредственно в локейшн /
> ЗЫЖ: не знаю насколько кретично, но не ставьте пробелы директивой знаком (;).
> Как тут try_files /tmp/1/$uri /tmp/2/$uri ;

Абсолютно такой же эффект.
wget -O - localhost/123.txt 2>/dev/null
2222.222


location / {
        index index.html index.php;
        try_files /tmp/1$uri /tmp/2$uri;
}

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Некорректная работа try_files, кто сталкивался?"  +/
Сообщение от PavelR (ok) on 25-Ноя-13, 21:00 
> Столкнулся с таким поведением директивы try_files: файл есть и в первой и
> во второй директории, но отдается только из /tmp/2/$uri. По логике вещей
> должен отдать 1111.111 но отдает test. В чем может быть дело?
> # wget -O - localhost/123.txt 2> /dev/null
> 2222.222
> # cat /tmp/1/123.txt  /tmp/2/123.txt
> 1111.111
> 2222.222

Что покажет:

ls -ld /tmp/1/

ls -l  /tmp/1/123.txt  /tmp/2/123.txt


?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Некорректная работа try_files, кто сталкивался?"  +/
Сообщение от obl email(ok) on 25-Ноя-13, 21:02 
# ls -l  /tmp/1/123.txt  /tmp/2/123.txt
-rw-r--r-- 1 root root 6 Nov 25 21:01 /tmp/1/123.txt
-rw-r--r-- 1 root root 6 Nov 25 21:01 /tmp/2/123.txt


> Что покажет:
> ls -ld /tmp/1/
> ls -l  /tmp/1/123.txt  /tmp/2/123.txt
> ?

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Некорректная работа try_files, кто сталкивался?"  +/
Сообщение от erera22 email(ok) on 25-Ноя-13, 22:27 
>  # ls -l  /tmp/1/123.txt  /tmp/2/123.txt
> -rw-r--r-- 1 root root 6 Nov 25 21:01 /tmp/1/123.txt
> -rw-r--r-- 1 root root 6 Nov 25 21:01 /tmp/2/123.txt
>> Что покажет:
>> ls -ld /tmp/1/
>> ls -l  /tmp/1/123.txt  /tmp/2/123.txt
>> ?

А директория /tmp/1 доступна на чтение?
> ls -ld /tmp/1

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Некорректная работа try_files, кто сталкивался?"  +/
Сообщение от PavelR (ok) on 25-Ноя-13, 22:44 
>>  # ls -l  /tmp/1/123.txt  /tmp/2/123.txt
>> -rw-r--r-- 1 root root 6 Nov 25 21:01 /tmp/1/123.txt
>> -rw-r--r-- 1 root root 6 Nov 25 21:01 /tmp/2/123.txt
>>> Что покажет:
>>> ls -ld /tmp/1/
>>> ls -l  /tmp/1/123.txt  /tmp/2/123.txt
>>> ?
> А директория /tmp/1 доступна на чтение?
>> ls -ld /tmp/1

Я уже спрашивал, но топикстартер решил сохранить интригу решения своей проблемы.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Некорректная работа try_files, кто сталкивался?"  +/
Сообщение от obl (ok) on 25-Ноя-13, 23:53 
да

> А директория /tmp/1 доступна на чтение?
>> ls -ld /tmp/1

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

8. "Некорректная работа try_files, кто сталкивался?"  +/
Сообщение от erera22 email(ok) on 26-Ноя-13, 01:42 
> да
>> А директория /tmp/1 доступна на чтение?
>>> ls -ld /tmp/1

Напишите локейшн, чтобы обратиться конкретно к файлу /tmp/1/123.txt. Если идет ошибка, смотрите лог.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Некорректная работа try_files, кто сталкивался?"  +/
Сообщение от obl email(ok) on 26-Ноя-13, 10:35 


root@srv01:~# sudo -u NGINX cat /tmp/1/123.txt /tmp/2/123.txt
1111
2222
root@srv01:~# sudo -u NGINX ls -l /tmp/1/123.txt /tmp/2/123.txt
-rw-r--r-- 1 root root 5 Nov 26 10:33 /tmp/1/123.txt
-rw-r--r-- 1 root root 5 Nov 26 10:33 /tmp/2/123.txt

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Некорректная работа try_files, кто сталкивался?"  +/
Сообщение от erera22 email(ok) on 26-Ноя-13, 14:15 
Интрига, мля. А на кой черт тут алиас?
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "Некорректная работа try_files, кто сталкивался?"  +/
Сообщение от obl email(ok) on 26-Ноя-13, 15:25 
> Интрига, мля. А на кой черт тут алиас?

Интрига кружит голову! Алиас для решения не нужен. Скомпилил последний нжинкс - та же беда, один в один, косяк в конфиге.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "Некорректная работа try_files, кто сталкивался?"  +/
Сообщение от obl email(ok) on 26-Ноя-13, 16:25 
>> Интрига, мля. А на кой черт тут алиас?
> Интрига кружит голову! Алиас для решения не нужен. Скомпилил последний нжинкс -
> та же беда, один в один, косяк в конфиге.

В общем суть интриги заключалась в следующем: try_files смотрит относительно локального пути, последняя директива уже абсолютый путь. Вот такая конструкция работает как положено:

root /;
try_files /tmp/1/$uri /tmp/2/$uri /tmp/3/$uri;
        

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "Некорректная работа try_files, кто сталкивался?"  +/
Сообщение от erera22 email(ok) on 28-Ноя-13, 15:08 
>>> Интрига, мля. А на кой черт тут алиас?
>> Интрига кружит голову! Алиас для решения не нужен. Скомпилил последний нжинкс -
>> та же беда, один в один, косяк в конфиге.
> В общем суть интриги заключалась в следующем: try_files смотрит относительно локального
> пути, последняя директива уже абсолютый путь. Вот такая конструкция работает как
> положено:
> root /;
> try_files /tmp/1/$uri /tmp/2/$uri /tmp/3/$uri;

Как-то я упустил, что root у Вас не определен. Однозначно, сказалось то, что у Вас /tmp/2/$uri открывался. Но тогда уж сделайте правильно:

root /tmp;
try_files /1/$uri /2/$uri /3/$uri;

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "Некорректная работа try_files, кто сталкивался?"  +/
Сообщение от obl email(ok) on 28-Ноя-13, 15:09 
>[оверквотинг удален]
>>> та же беда, один в один, косяк в конфиге.
>> В общем суть интриги заключалась в следующем: try_files смотрит относительно локального
>> пути, последняя директива уже абсолютый путь. Вот такая конструкция работает как
>> положено:
>> root /;
>> try_files /tmp/1/$uri /tmp/2/$uri /tmp/3/$uri;
> Как-то я упустил, что root у Вас не определен. Но тогда уж
> сделайте правильно:
> root /tmp;
> try_files /1/$uri /2/$uri /3/$uri;

Спасибо!

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру