Internal redirect. Howto

Goncharov Yuri neo at kntele.com
Thu Feb 12 17:22:23 MSK 2009


Согласен, это часть всяких упражнений, оно пока работает - но я 
оптимизирую.
Но вопрос остаётся, как с учетом того, что контент внутри проэкта скрыть 
его от глаз но позволить к нему доступаться через internal

А то Вы пишите - скрыли - а в итоге-то я ж описал свой случай, всё видно :)

Dmitriy MiksIr wrote:
> Извините, но конфиг у вас какое-то.. странный.
> Может потому что поскипанный
> Но не ясно, зачем описывать все статические файлы по расширению
> Для вас не подходит какой-то такой вариант?
> location / { root ...; } - отдаем статику
> location /filestorage { root ...; internal; } - скрыли
> location /download { rewrite ...; } - в down.php
> location ~* \.php$ { proxy ...; } - на бекенд
>
>
> Goncharov Yuri пишет:
>> Добрый день. Прошу у Вас помощи. Теоретически разобрался с 
>> 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






More information about the nginx-ru mailing list