今晚闲来无事学习了一下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附件

正常访问如图,图片为网上随便找的附件图片;

nginx <wbr>图片防盗链本地测试图片防盗链本地测试” TITLE=”nginx 图片防盗链本地测试” />

下面是codewalker2.com盗链上面网站中的icon_topic_attach.gif这张图片

网页代码如下:

nginx <wbr>图片防盗链本地测试图片防盗链本地测试” TITLE=”nginx 图片防盗链本地测试” />
其中加上端口为避免varnish缓存.

浏览器返回结果如下图

nginx <wbr>图片防盗链本地测试图片防盗链本地测试” TITLE=”nginx 图片防盗链本地测试” />

可以看出访问图片时已经被服务器重定向。

nginx <wbr>图片防盗链本地测试图片防盗链本地测试” TITLE=”nginx 图片防盗链本地测试” />

但是我不解的问题是为什么会多次重定向