先來了解下通路通過cdn緩存後的網站過程:
用戶端通過域名通路網站——>cdn服務商将web網站域名的A記錄改為cname并指向到放在各地的cdn緩存伺服器上——>我們得到域名的cname後,由于cname指向的是cdn緩存伺服器,是以我們通路到cdn緩存伺服器——>dns根據不同的源ip位址段解析對應的ip,并将其根據地域通路就近的cdn緩存伺服器——>由于我們在web程式中指定了通路的cdn緩存伺服器的url,是以cache直接比對使用者請求,到源站點伺服器獲得内容并緩存供下次使用
至此是一個完整的通路過程,當然通路cdn緩存伺服器還涉及到負載均衡等技術,需要我們詳細研究。
在此我來模拟下環境:
電信:172.16.8.102 源站點伺服器 squid 80端口+Apache 81端口
網通:172.16.8.147 cdn緩存伺服器 squid 80端口
電信:172.16.4.42 本地用戶端
問題:由于本地用戶端是電信使用者,直接通過電信線路通路正常,但是網通使用者打開網頁很慢
思路:我們在網通線路租用伺服器作為cdn緩存伺服器,這樣網通使用者經dns會通路通過網通線路通路cdn緩存伺服器,提高了通路速度
1.配置電信伺服器(在此隻羅列關鍵配置,詳細配置前看博文squid+apache配置)
http_port 80 accel vhost vport
cache_peer 127.0.0.1 parent 81 0 no-query originserver name=test
cache_peer test www.test.com
cache_peer_access test allow all
squid做反向代理,代理apache的81端口,并允許所有人通路
2.配置網通伺服器
http_port 80 accel vhost vport
cache_peer 172.16.8.102 parent 81 0 no-query originserver name=test
cache_peer test www.test.com
cache_peer_access test allow all
squid做反向代理,代理172.16.8.102的81端口
通過以上兩步,我們即可通過這兩條線路通路到源伺服器的81端口,進而通路到所需内容。
3.域名解析
我們将www.test.com解析到電信線路的172.16.8.102 和網通線路172.16.8.147,這樣就能實作cdn的效果。
當然,cdn的負載均衡和緩存技術以及如何控制使用者就近通路,仍需我們深入去探讨,不是靠三兩句能說明白的。