On Apr 13, 2013, at 10:45 PM, Роман <n.g.i.n.x....@gmail.com> wrote:

> Есть задачка скрыть реальное нахождение файла и отдавать его по
> короткой ссылке. Например: заходим по ссылке
> http://site.com/03209393/file.tgz, скачивание идет по ссылке
> http://site.com/03209393/file.tgz, а на самом деле файл находится тут
> http://site.com/arhive/file.tgz
> 
> Задача довольно простая на первый взгляд, если бы не одно но.
> 
> Можно ли читать реальную ссылку не скриптом, а например из мемкеша?
> Тогда бы nginx считывал ссылку и от давал файл без какого либо скрипта
> в бекенде.
> 
> Вся задача сводится к убиранию бекенда.

можно даже без мемкэша обойтись, просто соберите nginx с опцией 
--with-http_secure_link_module

        location /download/ {
          rewrite         /download/([a-zA-Z0-9_\-]*)/([0-9]*)/(.*)\.tgz$ 
/archive/$3.tgz?st=$1&e=$2;
        }

        location /archive/ {
          internal;
          secure_link           $arg_st,$arg_e;
          secure_link_md5       YOUR_SECRET_PASSWORD_HERE$arg_e$uri;
 
          if ($secure_link = "")  { return 403; }
          if ($secure_link = "0") { return 403; }
 
             }

YOUR_SECRET_PASSWORD_HERE - пароль, с помощью которого вы делаете шифр, $arg_e 
- timestamp
пример того, как генерить урлы на Ruby здесь 
https://gist.github.com/mikhailov/3174601

> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить