Re: URL с временными токенами

Sergey Shepelev temotor на gmail.com
Вт Май 11 13:43:22 MSD 2010


2010/5/11 softshape <nginx-forum at nginx.us>:
> Всем привет,
>
> стоит задача спрятать прямой путь к некоторым файлам (изображения из галерей с ограниченным доступом). Сам доступ проверяется бакэндом, а вот отдачу картинок хочется все-таки делать nginx'ом. Пришла в голову одна идея, но реализуема она ?
>
> 1) Бакэнд генерит случайный токен (типа QLOA83H7FMP) и сохраняет в memcache его самого (как ключ) и время окончания его действия (как значение). Допустим, это будет 10 минут.
> 2) URL'ы изображений на защищаемой странице выглядят как domain.ru/img/QLOA83H7FMP/picture.jpg.
> 3) Дальше немного магии - для файлов внутри /img/ nginx извлекает из URL'а токен, ищет его в memcached и если находит и его expiration-время не вышло, делает proxy-pass на секретный путь, где фактически лежит изображение - /img/private-path/picture.jpg.
>
> Без механизма proxy-pass, одним только бакэндом, красиво тут не сделаешь. Но возможно ли достучаться из nginx'а до memcached и если да, то как ?
>

Ищите модуль eval. Он может сходить в мемкеш и достать значение в
переменную, которую потом можно использовать для rewrite.


Подробная информация о списке рассылки nginx-ru