Проблема с try_files - nginx. Хелп.

Fexik
На сайте с 10.09.2007
Offline
46
3698

Здравствуйте уважаемые форумчане!

Уже мозг кипит не могу понять где у меня косяк (только разбираюсь с nginx).

Не работает try_files

есть: Сервер A - fs.site.ru - так же используется как файловый кеш (flv)

и два сервера B и С - хранилища файлов(flv) они же в upstream

Задача: когда заходим по сылке http://fs.site.ru/data/z/111.111.111.111/5960a0dbce3b7b355b4672d850936e3c/2.flv

файл отдает сервер А, если он есть на нем, иначе вытянуть файл с @video.

Но когда файл удаляю с кеша на сервере А, то try_files не перебрасывает на @video и выдает 404 ошибку

где тут собака зарыта не могу понять, хелп...


upstream remore {
# ip_hash;
server storage.ru;
server storage2.ru;
}

server {
listen 80;
server_name fs.site.ru;


location / {
try_files $uri @video;
}

location /data/ {
rewrite /data/(.+)/(.*)/(.+)/(.*)\.flv$ /realvideo/$4.flv;
}

location /realvideo/ {
rewrite ^/realvideo/(.*)$ /$1 break;
internal;
flv;
root /mnt/cache;
}

location @video {
proxy_pass http://remote;
proxy_redirect off;

proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-ARGS $args;
proxy_set_header X-URI $uri;
proxy_pass_header Set-Cookie;
}

}

iHead
На сайте с 25.04.2008
Offline
137
#1

у вас try_files только в location /, попробуйте его добавить в location /realvideo/, который судя по всему непосредственно и срабатывает при обработке запроса.

Рекомендуемый хостинг партнер 1С-Битрикс (https://www.ihead.ru/bitrix/), PHP-хостинг (https://www.ihead.ru/php/), доверенный партнер RU-CENTER (https://www.ihead.ru/news/573.html), официальный представитель REG.RU в Кирове (https://www.ihead.ru/news/851.html)
Fexik
На сайте с 10.09.2007
Offline
46
#2
iHead:
у вас try_files только в location /, попробуйте его добавить в location /realvideo/, который судя по всему непосредственно и срабатывает при обработке запроса.

не сработало получаю 404 - Not Found!

ngsv
На сайте с 12.10.2012
Offline
47
#3

open_file_cache установлена?

SIQWELL (http://siqwell.com/) - Быстро. Качественно. Дорого.
Fexik
На сайте с 10.09.2007
Offline
46
#4
ngsv:
open_file_cache установлена?

у меня не совсем "кеш nginx'a", есть некий скрипт на сервере B и С который анализирует логи и самые популярные файлы заливает на сервер A в /mnt/cache так как на сервера А скорость отдачи большая.

iHead
На сайте с 25.04.2008
Offline
137
#5
Fexik:
не сработало получаю 404 - Not Found!

смотрите логи

Fexik
На сайте с 10.09.2007
Offline
46
#6
iHead:
смотрите логи

при запросе http://fs.site.ru/data/z/111.111.111.111/5960a0dbce3b7b355b4672d850936e3c/2.flv

файл если есть на сервере А в /mnt/cache, то файл отдается нормально.

если удаляю его с /mnt/cache по идеи try_files должен передать на @video

но не работает(

В логах пишет только


2013/11/09 20:40:23 [error] 19006#0: *1 open() "/mnt/cache/2.flv" failed (2: No such file or directory), client: 111.111.111.111, server: fs.site.ru, request: "GET /data/cartoons/111.111.111.111/5960a0dbce3b7b355b4672d850936e3c/2.flv HTTP/1.1", host: "fs.site.ru"
Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#7

flv и try_files не будут работать совместно (это всё равно что потребовать, например, совместной работы flv и proxy_pass). Нужен if вроде

location @serve_flv
{
flv;
}
root /mnt/cache;
location /data
{
if (-e $document_root$uri)
{
return 402;
}
error_page 402 =@serve_flv;
proxy_pass ...;
}
С уважением, Борис Долгов. Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru (http://www.isplicense.ru/?from=4926)
bsyomov
На сайте с 25.01.2012
Offline
31
#8

open_file_cache всё же проверьте.

Fexik
На сайте с 10.09.2007
Offline
46
#9
Boris A Dolgov:
flv и try_files не будут работать совместно (это всё равно что потребовать, например, совместной работы flv и proxy_pass). Нужен if вроде
location @serve_flv

{
flv;
}
root /mnt/cache;
location /data
{
if (-e $document_root$uri)
{
return 402;
}
error_page 402 =@serve_flv;
proxy_pass ...;
}

спс верное направление! Проблема решена! 🍻

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий