首页 > 其他 > 详细

2.2-nginx配置防盗链

时间:2015-09-13 20:13:00      阅读:315      评论:0      收藏:0      [点我收藏+]

nginx的防盗链配置比apache简单,同样用到了referers

#不记录指定的文件类型日志


    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|rar|zip|gz|bz2)$

{

        access_log off;

        expires 15d;

        valid_referers none blocked *.llzdwyp.com *.wyp.com *.llzd.com;

        if ($invalid_referer)     #无效referer 注意referer没有s

        {

             return 403;          #返回403

         }

}


测试:curl -e "http://www.baidu.com/111" -I -x127.0.0.1:80 ‘http://www.llzdwyp.com/static/image/smiley/default/kiss.gif‘

发现了403提示

-e用来指定referers 即是否百度可以打开指定链接,意味是否可以盗链。


测试:curl -e "http://www.wyp.com/111" -I -x127.0.0.1:80 ‘http://www.llzdwyp.com/static/image/smiley/default/kiss.gif‘

发现200正常


课后答疑:

1.nginx配置防盗链的时候的if ($invalid_referer)

{

return 403;

}

语句与shell脚本的if语句是否相同

答:都是判断语句,但这个是nginx的配置,shell是shell,有本质的区别,不要混为一谈


2.在配置虚拟机的主配置文件时,中间用的是shell通配符,还是正则表达式。还是两者都可以??

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|rar|zip|gz|bz2)$ { ## 前面的“.*” ,是正则的形式

access_log off;

expires 5d;

valid_referers none blockef *.igbugs.com *.xyb_test.com; ## 这里的“*” ,是是用的通配符吧

答:有些地方是要用正则的,像带有 ~ 符号时后面一定是正则,而有些地方像这种域名那就是通配。讲究比较多,用多了就见怪不怪了。


2.2-nginx配置防盗链

原文:http://llzdwyp.blog.51cto.com/6140981/1694229

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!