我使用了B运营商的内容网站分发cdn,现在站点的图片资源很多,访问量大,导致流量有点顶不住。我现在想把图片使用第三方免费的资源存储,将图片资源使用网路地址。

能做优化的地方都已经做了,比如图片压缩,gzip,压缩等等。

目前的疑惑点:B运营商使用的cdn会存我的图片资源吗?会使用我购买的cdn流量包吗?顺便问一下各位大佬,有没有有其他的解决方案?


如果没有指明,当然不会。

要使用CDN必须引入相应CDN链接,然后在前端指明该链接指向的是外部,例如vue的externals。

解决方法要么把图片放在CDN上,要么放支持外链的图库里。总之都是要收费的。


看了一下你和其他答主之间的交流,我觉得你是把原来图片资源的链接改成了第三方存储的外链。以html中使用图片为例,浏览器实际上请求图片时,是访问第三方存储的域名,假如第三方存储没有CDN,那么就直接访问到了第三方存储源站,如果第三方存储有CDN,则访问CDN边缘,由CDN边缘决定命中缓存或者回源。这些CDN费用都由第三方存储负担,很可能最终会以访问量计费落到你头上。

你的图片链接域名不是你站点的域名,你的CDN是无法帮你进行缓存的,针对这个问题,实际上有若干解决办法

  1. 由自己反向代理回第三方存储,通过推送预取功能,提前下发图片缓存,优点是走自己的CDN,缺点是图片数量多预取麻烦,而且如果图片随时需要增加,请求均会落到你自己的源站,可能扛不住
  2. 使用一些CDN提供的外链改写服务,把图片外链先打到你的CDN,再由CDN去第三方存储获取图片,这个得看你的页面是否能被CDN的外链改写功能正确改写,优点是完全不走自己的源,缺点就是一般改写属于增值服务,CDN费用会增加


一般是的,视频,图片类都要添加缓存,才能起到明显的加速效果


CDN加速的原理:我使用简单的方式来讲解这个原理,CDN就是分散式多节点,在全国各个省的最优质机房购买伺服器作为CDN加速节点之一,使用了CDN加速之后我们的伺服器IP首先是绑定CDN的别名其次我们的域名在绑定CDN所生成的别名,这样达到了加速效果。用户每次在访问的时候CDN自动快速判断用户距离最近的节点在哪,将用户的请求发送给最近的节点,最近的节点再将请求转到你的伺服器上,达到先展示后反馈的效果,CDN最优之处就是文字方面反应更快,图片的话实时反应是不可能的,基本靠缓存1-4小时这样的,那你问CDN节点是否会保存你的图片在CDN节点里面,按缓存的道理来说好像是会,但实际上只是给你一个快照加速的效果,其实并没有自己本地打开速度来得快,因为多了一层中转。图片在伺服器本地打开是最快的。


B CDN运营商会缓存源站的图片(用户访问哪一张就缓存哪一张),至于缓存时间策略,可以自由设置。当然,也可以设置B CDN运营商不缓存,直接穿透到源站,但这样起步了多大加速作用。

另一方面,如果你的第三方平台存储空间如果本身已经存在CDN,默认B CDN做源访问的时候,会消耗第三方平台存储空间的CDN流量,这个时候可以问第三方平台存储空间的服务商拿回源地址,B CDN回源的时候,回到回源地址上,这样就不会用到第三方平台存储空间的CDN流量。


建议你了解下CDN的云平台技术再做判断

比如fdcservers的CDN的使用的是 onapp CDN技术

其他的提供商有vmware的或者其他的CDN底层技术。。。


推荐阅读:
相关文章