Home > Uncategorized > ngx_http_secure_download

ngx_http_secure_download

January 6th, 2011 Leave a comment Go to comments

Задача: обеспечить возможность скачивать контент с сервера. только посетителям вашего сайта.

Реализация: использование специальных ссылок, которые содержат ключ и дату протухания.

Модуль к nginx – ngx_http_secure_download

Сборка nginx:

$ cd nginx-0.8.53
$ ./configure --add-module=../ngx_http_secure_download/

Конфиг nginx:

        location /somefolder {
            secure_download on;
            secure_download_secret IAmSalt$remote_addr;
            secure_download_path_mode file;
 
            if ($secure_download = "-1") {
                rewrite /expired.html break;
            }
            if ($secure_download = "-2") {
                rewrite /bad_hash.html break;
            }
            if ($secure_download = "-3") {
                return 500;
            }
 
            rewrite ^(.*)/[0-9a-zA-Z]*/[0-9a-zA-Z]*$ $1 break; // crop all the /hash/time stuff off the url
        }

Генерация ссылки средствами php:

function secure_url($url)
{
  $ts = time() + 3600;
  $ts_in_hex = dechex($ts);
  $secret = 'IAmSalt' . $_SERVER['REMOTE_ADDR'];
  $hash = md5($url . '/' . $secret . '/' . $ts_in_hex);
  return  $url . '/' . $hash . '/' . $ts_in_hex;
}

Использованы материалы статьи: Видеохостинг своими руками

PS: Так же, есть модуль ngx_http_secure_link_module, но у него все ссылки перманентные.

Tags:
  1. No comments yet.
  1. No trackbacks yet.