我正在尝试在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");}