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