реально ли это?
Andrew Kopeyko
kaa at ramtel.ru
Tue Dec 13 10:57:20 MSK 2005
On Tue, 13 Dec 2005, Andrew Velikoredchanin wrote:
> Pavel Sokolov пишет:
>> Есть сайт на котором лежат файлы для загрузки ( отдаются nginx'ом )
>> Причём отдаваться они должны через редирект.
>> Так вот, некоторые редиски ставят(на своих сайтах) прямые линки на файлы
>> вместо страницы с редиректом.
>> Как бы это нивелировать?
>>
>> 1. Либо добавить какой опшен чтобы nginx отдавал файлы как бы из указанной
>> отдельно папки.
>> тоесть на сайте указано:
>> http://www.bbb.com/downloads/file.exe
>> Это будет редирект на
>> http://www.bbb.com/downloads2/file.exe
Ничего добавлять не требуется - "всё уже добавлено до нас" (с)
>>
>> так вот может ли nginx отдавать клиенту файл из /downloads2/
>> будто он находится в /downloads/ ? чтобы небыло видно реального пути ни
>> под каким предлогом.
>>
>> 2. Либо както непускать народ напрямую качать файло из /downloads2/
>> но это для меня вообще непонятно как сделать.
>>
>> ps. человек 20 кому это надо я легко предоставлю.
>
> nginx для этого очень хорошо подходит.
>
> 1. Это можно сделать через rewrite, но не вижу особого смысла.
Вот работающий пример (nginx/0.3.5) :
# редиректим всех внешних прямых качков
valid_referers none www.zvuki.ru/ dl.zvuki.ru/ dl2.zvuki.ru/;
if ($invalid_referer) {
rewrite ^/([0-9][0-9][0-9])/mp3/(.*)\.mp3$
http://www.zvuki.ru/T/P/$1/mp3/$2;
}
> 2. Самое правильное решение - на бэкэнде поставить скрипт, на который будут
> направляться все запросы типа /download2/file.exe. Скрипт проверив что
> отдавать этому юзеру этот файл можно выдает заголовок с X-Accel-Redirect с
> патем к файлу /download/file.exe. В nginx location /download/ прописывается с
> флагом internal, тогда файлы скачать можно будет только через /download2/.
Если не ставить cookies, то скрипт всё равно проверять будет по URI да по
referrer - а тогда какой смысл нагружать этим бэкенд с дорогими ресурсами?
Это всё и на nginx проверять можно и нужно.
--
Best regards,
Andrew Kopeyko <kaa at ramtel.ru>
More information about the nginx-ru
mailing list