蒙面人生蒙面人生

Nginx简单防盗链的方法

网站资源被盗链,确实是很伤脑筋的.例如一个图片站.如果你的图片被一个大站"引用"的话..那流量可是一下子就可以达到上百M.....可惜这种流量只会用光你的带宽.而不会带来任何有益于你的东西...所以.这种是首要防止的.对付这种最简单而有效的方法...就是使用REWRITE判断来源网页...非本站的...全断开..这很简单而有效...
location /img/ {
    valid_referers none blocked menface.net *.menface.net;
    if ($invalid_referer) {
        rewrite  ^/  http://www.baidu.com/error.jpg;
    }
}

这种是nginx简单的目录防盗的方法,几行代码的用途就不说了,一看即明白.再一种是设置文件类型的防盗:
location ~* .(gif|jpg|png|swf|flv)$ {
                        valid_referers none blocked menface.net *.menface.net;
                        if ($invalid_referer) {
                                return 403;
                        }
                }

最后要说一下,现在很多用lnmp包,要让这个防盗起作用需要把location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                        {
                                expires      30d;
                        }
这个删除才行.

再来一个完美的,可以让expires生效的:
location ~* ^.+\.(gif|jpg|jpeg|png|bmp|zip|rar|txt|swf|flv|js|css)$ {
        valid_referers blocked menface.net *.menface.net localhost;
        if ($invalid_referer) {
        rewrite ^/ http://i3.6.cn/cvbnm/55/52/48/9227ec72e44494d291cf6bd54d99a865.gif;
        return 403;
        break;
            }
                 
        expires 3d;
        break;
        }

注意valid_referers这里是blocked,而不是none blocked.
none blocked表示允许直接打开,而去掉none就表示不允许直接浏览.

本原创文章未经允许不得转载 | 当前页面:蒙面人生 » Nginx简单防盗链的方法

评论