我正在尝试实现下载盗链保护。
我有这个代码
location /download/ {
valid_referers blocked server_names *.example.com;
if ($invalid_referer) {
return 403;
}
工作正常,这允许指定域并阻止valid_referers中没有的任何内容,有什么问题?我想实现一个指定的 IP 允许使用 not referer 并阻止它。
这就是日志显示的内容。
1.2.3.4 - - - "GET file.doc HTTP/2.0" 200 13050 "-" "-"
我只想要 1.2.3.4 不接受任何推荐人。
为了防止盗链,允许空的引用字符串(直接下载)就足够了。因此,您的配置可能如下所示:
浏览器在加载嵌入在网页中的图像时,总是将 Referer 标头添加到图像请求中。
如果你真的想阻止直接下载图片,那么你需要在
http
nginx 配置级别使用类似这样的东西:然后在
server
块中:在这里,该
geo
模块用于将IP地址映射到变量值,并用于set
组合成单个变量,在语句中进行测试。$invalid_referer
$blocked
if
我自己没有测试过这个确切的配置,但原理应该有效。