91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

AWS 中怎么實現動態CDN

發布時間:2021-06-24 17:40:22 來源:億速云 閱讀:357 作者:Leah 欄目:云計算

AWS 中怎么實現動態CDN,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

CDN 不是一個新名詞,這個把緩存分布到世界各地的技術起碼出現了 10 年。最近又火起來,原因是用戶對網絡響應時間的要求深化。國內就有阿里云的 CDN, ChinaCache, Baidu+Cloudfare, UCloud, 7牛 還有很多。。。因為網絡問題,很多大公司都會采用國外服務器,然后把內容通過CDN 推到國內。

技術上,我認為這么多公司一起做CDN,其中一個原因就是這東西不復雜,當然國內國外的支持還會加上一些其他問題。主流技術就是 Nginx / Varnish 作為 File Cache, 然后部署 GSLB(全局負載均衡)。 以技術角度來看,我是不會自己架一個CDN網絡的,得上百節點的才算得上CDN,個人架設成本有點高。認為選擇 CDN 時會考慮以下的因素

  1. 支持 Cache invalidation 

  2. Invalidation 所需要的時間與價格

  3. 流量費不要超過 USD 0.14/GB

  4. 支持動態 CDN

  5. 支持子域名 (CloudFlare / 安全寶 都需要域名切換,防DDOS)

  6. 支持 Cache Behaviour (不同的路徑有不同的 cache 特性)

  7. 可以 pass through header / cookie

  8. Respect Cache-control header

  9. 最好可以直接有操作介面更改 header

  10. 支持 edge side include

相信能做到以上的,就不純粹是個簡單的CDN,是個真正的CDN。今天主要分享的是第 4)點 動態 CDN

AWS 在 2013 年開始在 Cloudfront 支持動態CDN,意思就是可以把 html 也存到 CDN 上,用戶拿到 HTML 和 靜態文件都在 CDN 上,不需要向服務器 (origin) 請求。原理上,這就支持無限的訪問。read 請求日千萬不是問題,問題去了信用卡能刷多少錢而已。

AWS 中怎么實現動態CDN

這個 Dynamic CDN 的原理是這樣的 比如,以 abc.com為例子作一下說明。

  1. abc.com CNAME 去 Cloudfront 的域名 (xxxxxxxx.aws.cloudfront.com)

  2. 在 xxxxxxxx.aws.cloudfront.com 以下的 Cloudfront ID (cloudfrontID.default.cloudfront.com) 接受 abc.com 的請求

  3. xxxxxxxx.aws.cloudfront.com 指向  origin.abc.com 拿數據 (就是本服務器)

  4. 要是請求沒有 cloudfront 本地 cache, 就繼續,否則反回 cache

  5. 要是請求不是特定的 path ( cache behaviour),則反回

  6. cloudfrontID.default.cloudfront.com 向 web 服務器 (Origin) 請求 object (html / css / .jpg / …)

  7. 把 header (cache-header / CORs) 也記到 cache 中

  8. 把 xxx.default.cloudfront.com 的 cache 反回到 abc.com 的客戶端

  9. 跟據在第 7) 點 定義的 header按時間清理緩存

  10. 跟據請求的來源IP,在世界各地每一個edge 上操作 1-9

這有點像反向代理,比如 Varnish 就在做差不多的事。只是CDN 在用 edge cache. Varnish 一般的使用情況是把文件緩存最長時間,然后根據 Origin 給的指令來更新緩存。這是客戶最想要的,這樣就不會有 “第一位用戶變慢” 這樣的問題。但要是用過好幾個 CDN 的人就會發現,市面上沒有CDN 支持永久緩存這回事。原因在哪?這沒有官方回應,我感覺是 edge cache 是很多很多的服務器,在 AWS 上跑一次 cache invalidation 去清理所有 edge 上的 cache 要花上 20-30 分鐘,要是每一次的 object 更新也得像 Varnish 去 “push” 更新,就會花上很大的成本。倒不如自動 Expire, 然后在下一位用戶有需要時,才把最近那地理位置的 edge cache 上加一個 object cache. 這樣就省去一筆很大的成本。

好的 CDN 得支持 Behaviour, 就是路徑不同的特性,在不同的應用上,特別是已登錄的用戶,使用太多的 cache 會令系統出問題。得跟據路徑來刪除/加速 刷新。

AWS 中怎么實現動態CDN

要是支持登錄用戶的話, Cookie 要用客戶端直接傳送到 Origin, 所以得支持 (forward cookie)

AWS 中怎么實現動態CDN

每個 CDN 會有一個 Default behaviour, 就是不指定情況下,都跟據這個 behaviour 作出回應。比如我們要支持用戶登錄,得把 session 通過 Dynamic CDN 回傳到 origin 

AWS 中怎么實現動態CDN

看完上述內容,你們掌握AWS 中怎么實現動態CDN的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙海市| 桂平市| 崇信县| 鹤壁市| 洪江市| 方城县| 浦城县| 广灵县| 璧山县| 东兴市| 鄂伦春自治旗| 铁岭县| 南阳市| 沽源县| 信丰县| 丹寨县| 大田县| 合川市| 芷江| 青田县| 临桂县| 拉孜县| 新营市| 清徐县| 太和县| 池州市| 南昌县| 晋江市| 栾城县| 沧州市| 乌恰县| 惠东县| 扎赉特旗| 上高县| 苏尼特右旗| 尤溪县| 东乡族自治县| 兰坪| 濮阳市| 正镶白旗| 富源县|