referfer 防盗链 视频和图片 页面访问时403 效果 其他页面无法引用 资源 nginx配置

 1.     location ~* .*.mp4$ {
 2.         expires   30d;
 3.     #   root /www/wwwroot/default/learnlaravel5/public/uploads/;
 4.         valid_referers none blocked 192.126.118.132 *.192.126.118.132 *.baidu.com *.google.com *.sogo.com;
 5.        if ($invalid_referer){
 6.             return 403;
 7.         #   #rewrite ^/ http://www.baidu.com;
 8.          }
 9.        mp4;
10.       }
        #设置图片防盗链
         location ~* .*.(gif|png|jpeg|gif|jpg|bmp|swf)$ {
        # location /uploads/ {
         expires   30d;
         #  root /www/wwwroot/default/learnlaravel5/public/uploads/video/;
       valid_referers *.192.126.118.132 192.126.118.132 *.baidu.com *.google.com *.sogo.com;
          if ($invalid_referer){
             return 403;
             #rewrite ^/ http://www.baidu.com;
           }
        }
这里是图片和视频的防盗链,我就解释一下视频的配置意思吧,这里我方便叙述,所以打了行号,要粘贴复制的话,请去掉前边的行号,但是,也请搞清楚各行的意思,免得出错了找我啊,嘿嘿

第一行   location ~* .*.mp4$ {  这是一个正则匹配,取出处理静态文件的请求的后缀,这里说一下,客户端访问服务器,浏览器请求的顺序,

域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户 --> 四次挥手结束 

 

这里我也不做多的解释,有兴趣可以去看看,搜搜

第二行   expires   30d;   对于站点中不经常修改的静态内容(如图片,JS,CSS),可以在服务器中设置expires过期时间,控制浏览器缓存,达到有效减小带宽流量,降低服务器压力的目的。 说一下单位,d是天,30d就是30天,1h就是一小时

第三行   root /www/wwwroot/default/learnlaravel5/public/uploads/;   这是规定匹配目录,即是说当访问这个文件夹的MP4文件时,运行下面的规则,如果你前面有规定root的目录,这里可以不用谢,即是说,文件的目录,在你的网站目录里,就可以不用写,跟root不是在一个目录的话,就要写了。

第四行   valid_referers none blocked 192.126.118.132 *.192.126.118.132 *.baidu.com *.google.com *.sogo.com;  这行的意思规定哪些网站可以正常访问,前面的*号,也是正则匹配的啦,www,或者http或者https或者其他的,这里要把自己的网站写上啊,其他的百度谷歌什么的,随你啦none 不拒绝来源头部为空的请求  blocked  来源头部不为空,但是里面的值被代理或者防火墙删除了,这些值都不以http://或者https://开头.

第五行   if ($invalid_referer){   这个就是一个if判断,$invalid_referer 的意思就是,当访问的路径不是来自于上面你规定的那些,那么这个变量的值就会等于1,从而执行里面的return 403,  

第六行   return 403;  即是返回一个错误码,403,也可以直接重定向到第七行 那里写的一样的一个网址 ,可以是你自己的,或者是一张403的图片都可以的,看你啦,

另外想说的就是,浏览器有缓存,测试视频的时候,即是自己的网站访问的时候,可以加载,别的页面直接引入视频的也可以播放,那么也有可能是浏览器缓存的问题,清空一下就好了,还是就是图片的话,我这边用的nginx的服务器,tail  -200f access.log 就可以看到图片或者视频是否访问成功,access.log是nginx的日志啦,任何经过nginx的访问,都有记录。图片意思也是这样的,我这里只有mp4的视频,所以只配置mp4,其他的需要的话,加上就好了,还有就是正则匹配的问题,有好几个精度,我这里用这个就好了,要说正则的话,又是一大堆。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_39577247

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值