我有以下休闲配置来禁用 nginX 上的热链接。
location / {
root /var/www/html;
index index.html index.htm;
}
location ~ \.(xml|jpg|jpeg)$ {
root /var/www/html;
valid_referers none blocked www.domain.com dev.domain.net;
if ($invalid_referer) {
return 444;
}
}
我已经多次重新加载 nginX,但仍然可以访问 Facebook 的图片。/var/www/html 中有几个文件夹。
我是否遗漏了什么?
答案1
不确定您是否知道,但是 nginx 中有一个错误,如果该代码在单独的文件中(不是 nginx.conf ),重新加载将不会获取包含文件中的更改;您将需要停止/启动 nginx。
逻辑上也有点变化,因为你列出了有效的推荐人,那么这样说不是更好吗?
if (!$valid_referrer)
答案2
检查访问日志中引用:
IP - - [20/Feb/2011:20:11:51 +0000] "GET /GET HTTP/1.1" 200 3710 "REFER" "USER_AGENT"
有效的引用者:
- none 表示没有“Referer”标头。
- 阻止意味着防火墙屏蔽了 Referer 标头(非 http(s))