ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Internal redirect. Howto



location /filestorage {internal; }

12.02.09, Goncharov Yuri<neo@xxxxxxxxxx> написал(а):
> Добрый день. Прошу у Вас помощи. Теоретически разобрался с
> X-Accell-Redirect, всё вроде работает, но есть несколько вопросов.
> Папка в которой будут лежать медиа-данные проэкта физически находятся
> внутри проэкта (девелоперы утверждают что выносить ее за пределы проэкта
> для них очень сложно и сейчас это реализовать невозможно, хотя я
> продолжаю настаивать).
> Дык вот получается что, например файл по адресу
> /www/projects/project/data/filestorage/1.jpg
> отдаётся корректно используя файлик down.php в котором
> header("X-Accel-Redirect: /filestorage/".$path); и т д, как положено.
> Меня интересует вопрос как мне запретить прямой доступ через
> http://domain.com/data/filestorage/1.jpg в моем случае
>
> Такая статика обрабатывается как я понял первым в моём конфиге location
> и сделать там allow/deny неверно, так как перестают читаться вся
> остальная статика проэкта
> по понятной причине. А в случае с internal такие ограничения (как у меня
> в конфиге) попросту не работают.
>
> Что я делаю не так и какие есть варианты?
>
> Конфиги привожу ниже, спасибо заранее.
>
>
> nginx.conf:
>
>     server {
>         listen       80;
>         server_name  .domain.com;
>         include proxy;
>         # Static files location
>         location ~*
> ^(?!/download/).+\.(jpg|jpeg|gif|png|ico|zip|gz|rar|bz2|xls|exe|pdf|txt|wav|bmp|js|swf|css|xml)$
>             {
>             root   /www/projects/project;
>             }
>         location /filestorage {
>             root /www/projects/project/data/;
>             allow 127.0.0.1;
>             deny all;
>             internal;
>         }
>
>     }
>
> proxy:
>
>         location / {
>             set $subdomain "";
>             if ($host ~* ^x([0-9]+)\.domain.com$){
>             set $subdomain $1;
>             rewrite ^/download/(.*)
> /down.php?intUserID=$subdomain&path=$1 break;
>             }
> .......[skipped]
>
> --
> Best regards
>
> Phone +380 44 496 88 17
> Mobile +380 67 509 05 79
> CTO KNtelecom Ukraine Ltd.
> ----------------------------
> NEO83-RIPE
>
>
>


-- 
С уважением, Борис Долгов.
icq 77556665
e-mail boris@xxxxxxxxxxx


 




Copyright © Lexa Software, 1996-2009.