我正在运行一个使用Nginx的相当好的CDN系统,我需要保护我的链接,以便它们不会在用户之间共享。
当前配置完美运行..
secure_link …
您可以使用地图方法
map $remote_addr $auth_addr { default $remote_addr; ~*^192\.168\.100 192.168.100; ~*^192\.169 192.169; }
然后再使用一些东西
secure_link_md5 "$secure_link_expires$uri$auth_addr secret";
我没有使用过这样的方法,但我认为它应该可行。如果没有,请告诉我
由于@Tarun Lalwani指出了地图的想法,我设法得到了这个工作。
# This map breaks down $remote_addr into octets map $remote_addr $ipv4_first_two_octets { "~(?<octet1>\d+)\.(?<octet2>\d+)\.(?<octet3>\d+)\.(?<octet4>\d+)" "${octet1}.${octet2}"; default "0.0"; } location / { # Setup Secure Links secure_link $arg_md5,$arg_expires; secure_link_md5 "$secure_link_expires$uri$ipv4_first_two_octets secret"; }
您可以在Nginx中使用多个auth指令,因此您可以从安全链接中删除IP并将其指定为单独的指令。
Nginx使用CIDR范围,因此对于您的示例,它只是一个例子
allow 192.168.0.0/16; deny all;