Ничего добавлять не требуется - "всё уже добавлено до нас" (с)
так вот может ли 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 проверять можно и нужно.