昨天在QQ群看到有朋友询问LNMP的环境如何防盗链,关于这个,问题,其实军哥在论坛已经做了解答,这边我就借过来分享,同时也算做一个笔记。
由于nginx不支持.htaccess,所以,从这个方面直接去防止是行不通的,我们要通过修改配置文件来解决。
首先,我们找到需要防盗链的域名的conf文件,路径:/usr/local/nginx/conf/vhost/,比如zrblog.net.conf
还是先备份下,免得搞错了还能直接覆盖回去,这是好习惯!!!
找到下面的部分:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
将它修改为:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
valid_referers none blocked www.zrblog.net zrblog.net;
if ($invalid_referer) {
rewrite ^/ http://vpsaa.com/404.jpg;
#return 404;
}
expires 30d;
}
上面的内容,大家请根据个人的情况酌情修改,我这里做基本的解释。
第一行gif|jpg|jpeg|png……这些是您需要防止盗链的文件类型,您可以补充一些后缀类型;
第三行是你的网站的域名,就是说放行的域名,如果有多个,请添加,注意空格;
第五行是给盗链看到的图片,返回一个404.jpg,这个图片源地址是要可以外链的哦,不然,别人看到的也就一个XX。
完成之后保存,上传到原位置覆盖,之后重启下lnmp使之生效。
/root/lnmp restart
另外,有朋友问到如何防采集,这个问题目前貌似没有特别有效的方法,建议大家可以从系统层面去研究,比如iptables规则的限制等。