Есть задачка скрыть реальное нахождение файла и отдавать его по
короткой ссылке. Например: заходим по ссылке
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
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru