ПРОЕКТЫ 


  АРХИВ 


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: реально ли это?



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@xxxxxxxxx>




 




Copyright © Lexa Software, 1996-2009.