Nginx安全链接过期不起作用



我正在尝试在ubuntu服务器上设置NGINX安全链接。以下是我目前使用的NGINX配置和PHP代码。

location /files {

secure_link $arg_md5,$arg_expires;
secure_link_md5 "$secure_link_expires$uri$remote_addr enigma";
if ($secure_link = "") { return 403; }
if ($secure_link = "0") { return 410; }
}
下面是PHP代码

$domain = 'mydomain.com';
$uri = urldecode('/files/test.pdf');
$ip = $_SERVER['REMOTE_ADDR'];
$secure_text = ' enigma';
function getSecureHash($ip, $uri, $secure_text, $expires){

$str = $expires.$uri.$ip.$secure_text;

$tmp = md5( $str, true );

$tmp = base64_encode( $tmp );
return str_replace( array('+', '/', '='), array('-', '_', ''), $tmp );
}
$url = "$domain$uri?md5=".getSecureHash($ip, $uri, $secure_text, $expires)."&expires=$expires";
echo $ip; 
echo "</br>";
echo "</br>";
echo "</br>";
echo $url;
在这个代码中,我总是得到403禁止。然而,当我从NGINX和PHP中删除IP时,它可以工作,但我想创建一个基于IP的唯一链接。

如有任何指导,将不胜感激。

我在看这个链接

如果您在CF缓存下,请尝试

如果(收取($ _SERVER [' HTTP_CF_CONNECTING_IP '])) {$ ip = $ _SERVER [' HTTP_CF_CONNECTING_IP '];}其他{$ ip = $ _SERVER("REMOTE_ADDR");}

最新更新