我使用了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底層技術。。。


推薦閱讀:
相关文章