Николай в свое время переделал модуль
NginxHttpAccessKeyModulehttp://wiki.codemongers.com/NginxHttpAccessKeyModule,
я же переделал его модуль.
Изменения:
- в expirelink_signature можно использовать переменные, как и раньше в
AccessKeyModule http://wiki.codemongers.com/NginxHttpAccessKeyModule
- убрал хардкодную зависимость от uri, потому как $uri можно засунуть в
signature, а можно и убрать, чтобы доступны были все файлы в location
- создание md5 должно происходить в такой последовательности:
"TimestampSignature"
В локейшн:
expirelink on;
expirelink_hashmethod md5;
expirelink_arg "s";
expirelink_timestamp_arg "t";
expirelink_signature "secret$remote_addr$uri";
Example URL:
http://www.example.com/path/to/file?&t=1257499561&s=6fe68dff43c224653a5306c097d5d1b8
Python MD5:
md5.new("1257499561secret127.0.0.1/path/to/file").hexdigest()
= 6fe68dff43c224653a5306c097d5d1b8
---------------
Alex Aster
WIPmania.com - база IP геолокации
18 декабря 2008 г. 13:28 пользователь Nikolay Sivko
<default_xz@inbox.ru>написал:
> На самом деле это пропатченный AccesKey модуль (
> http://wiki.codemongers.com/NginxHttpAccessKeyModule), лежит тут:
> http://94.124.200.59/pub/ngx_http_expirelink_module.tar.gz
> При запросе файла с сервера в аргументах передается время до которого
> ссылка валидна и (md5|sha1) хэш от "URI,expire_time,salt", если текущее
> время меньше expire_time и хэш верный файл отдается, в противном случае -
> 403.
> Пример конфига:
>
> location /files/ {
> expirelink on; #включаем
> expirelink_arg "s"; #имя аргумента с хэшом
> expirelink_timestamp_arg "t"; #имя аргумента с временем, до которого
> валидна ссылка
> expirelink_signature "1234112121"; #секретное слово
> expirelink_hashmethod md5; #тип хэша (md5|sha1)
> root /var/www/storage;
> }
>
Attachments:
open |
download -
ngx_http_expirelink_module.tar.gz
(3.1 KB)