Configuração Nginx
server {
listen 80;
server_name 173.249.40.xxx;
root /var/www/files.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location /securetest {
alias /var/www/files.com/html;
secure_link $arg_md5,$arg_expires;
secure_link_md5 "$secure_link_expires$uri$remote_addr the_secret_key_configured_in_nginx";
if ($secure_link = "") { return 403; }
if ($secure_link = "0") { return 410; }
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Arquivo PHP
function buildSecureLink($baseUrl, $path, $secret, $ttl, $userIp)
{
$expires = time() + $ttl;
$md5 = md5("$expires$path$userIp $secret", true);
$md5 = base64_encode($md5);
$md5 = strtr($md5, '+/', '-_');
$md5 = str_replace('=', '', $md5);
return $baseUrl . $path . '?md5=' . $md5 . '&expires=' . $expires;
}
$secret = 'the_secret_key_configured_in_nginx';
$baseUrl = 'http://173.249.40.xxx';
$path = '/securetest/'.$filename;
$ttl = 120; //no of seconds this link is active
$userIp = '39.47.109.140';
$secure_Link_created = buildSecureLink($baseUrl, $path, $secret, $ttl, $userIp);
redirect($secure_Link_created);
Aqui está o problema, quando eu escrevo o caminho exato do arquivo, todos podem acessar o arquivo enquanto eu quero, o link só pode ser acessado pelo meu site.
qual será o URL para acessar o arquivo eu também estou confuso com isso.
%código%
ou
http://173.249.40.xxx/nj_folder/myfile.zip
Quando tento acessar o arquivo com URL de segurança, ocorreu um erro 404.
O código de redirecionamento também cria o link, mas funciona para todos e tem o caminho completo exato http://173.249.40.xxx/securetest/myfile.zip
O caminho completo deve estar escondido o que eu estou perdendo?
Por favor, explique isso em detalhes.
Obrigado