阿里云OSS配置防盗链及通过nginx反向代理访问OSS中的资源

  阿里云出了个OSS(对象存储),价格便宜,很适合存储图片、视频等静态资源。因为内网访问免费,于是就寻求通过访问ECS服务器,再让ECS通过内网访问OSS资源的方式,花了一点时间,终于搞定了。
  首先,Bucket的读写权限我设置的是公共读,因为本来我把静态资源上传到OSS就是为了减轻服务器压力的,如果设为私有,反而会加重服务器压力。
  然后,你会发现有个问题,外网访问是收费的,所以你需要到OSS控制台中设置一下防盗链。防盗链的意思是只有用户输入的访问地址中请求头中的Referer在你设置的列表里才会允许访问。例如: http://static.test.com 是ECS服务器中准备用来做资源访问的网址,则防盗链可设置为 http://static.test.comhttps://static.test.com ,设置完后,只有Referer为这两个的才会被允许访问。
  Referer解释:http://www.test.com/go.html 中有个img标签,src属性为图片地址http://xxxx.oss-cn-beijing.aliyuncs.com/test.jpg,则Referer就为http://www.test.com/go.html ,但因为 http://www.test.com/go.html 不在防盗链列表中,该访问会被拒绝(直接在浏览器地址栏输入图片地址访问时Referer为空,建议将Referer设置为不允许为空)。
  最后就是nginx反向代理的配置了,配置比较简单,但也很容易出现错误。

        location / {
            proxy_set_header Referer http://static.test.com;
            proxy_pass  http://xxxx.oss-cn-beijing.aliyuncs.com/;
        }

这里要注意:
  ①proxy_pass的值 http://xxxx.oss-cn-beijing.aliyuncs.com 后面必须跟/。
  ②proxy_set_header Referer为设置的防盗链地址。
  ③不要加上proxy_set_header Host $host;否则会无法访问。

小贴士:
  建议设置默认首页和默认404页面,设置完后,访问OSS首页时就会自动进入设置好的首页,访问出错(找不到资源、没有权限等)时会自动进入设置好的404页面。这样设置的好处是防止Bucket名字等敏感信息泄露(没有设置404页面时,错误页面会显示这些),毕竟设置的读写权限是公共读,这样也可以在某种程度上减少攻击。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值