今晚闲来无事学习了一下nginx的防盗链或者准确的说是防止非指定域名访问。
测试中出现的域名均为本地测试不用去访问了。
核心代码如下:
location ~* .(gif|jpg|png|swf|flv)$ {
valid_referers none blocked codewalker.com ;
if ($invalid_referer) {
rewrite ^/ http://codewalker.com:8080/234_s.gif;
#return 404;
}
}
正常访问;http://codewalker.com:8080/indexc.php
网页代码如下;
this is a test web
正常访问如图,图片为网上随便找的附件图片;
图片防盗链本地测试” TITLE=”nginx 图片防盗链本地测试” />
下面是codewalker2.com盗链上面网站中的icon_topic_attach.gif这张图片
网页代码如下:
图片防盗链本地测试” TITLE=”nginx 图片防盗链本地测试” />
其中加上端口为避免varnish缓存.
浏览器返回结果如下图
图片防盗链本地测试” TITLE=”nginx 图片防盗链本地测试” />
可以看出访问图片时已经被服务器重定向。
图片防盗链本地测试” TITLE=”nginx 图片防盗链本地测试” />
但是我不解的问题是为什么会多次重定向