ngx_http_secure_download
Задача: обеспечить возможность скачивать контент с сервера. только посетителям вашего сайта.
Реализация: использование специальных ссылок, которые содержат ключ и дату протухания.
Модуль к 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, но у него все ссылки перманентные.
