nginX热链接保护失败

我有下面的configuration来禁用在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中的几个文件夹。

我错过了什么吗?

不知道你是否知道,但是在nginx中有一个bug,如果这个代码是在单独的文件中(而不是nginx.conf,重载将不会得到包含文件中的变化;你将需要停止/启动nginx。

在逻辑上也有点改变,因为你列出了有效的推荐人不是更好的说法

if (!$valid_referrer)

检查访问日志中的参考:

 IP - - [20/Feb/2011:20:11:51 +0000] "GET /GET HTTP/1.1" 200 3710 "REFER" "USER_AGENT" 

valid_referers:

  • 没有意思是没有“Referer”标题。
  • 被阻止意味着被屏蔽了引用者头部的防火墙(非http(s))