1. 程式人生 > >七牛&又拍雲CDN雲端儲存節省GET次數的小技巧

七牛&又拍雲CDN雲端儲存節省GET次數的小技巧

相信大部分使用七牛的小站用的都是七牛的免費套餐。也就是有各種限制,比如流量、GET 數量等:七牛&又拍雲CDN雲端儲存節省GET次數的小技巧

對於這 4 個限制指標,估計大部分站長最拮据的就是第 2、4 個限制了。

不過,對於第 2 個限制,我們倒是可以通過推薦他人註冊七牛來獲得最高 40G 的永久下載流量(貌似有超過的)。比如,我的 2 個七牛帳號就都已經是永久 40G 流量了。

隨著網站的流量越來越大,而且網站的所有靜態資源都丟到了七牛,結果就出現這種情況:

七牛&又拍雲CDN雲端儲存節省GET次數的小技巧

一個月 300 多 W 次 GET 了。雖然七牛的 GET 非常便宜(¥0.01 /萬次請求),一百萬也就是 1 快錢。但是作為屌絲站長,本來就想用用免費的套餐,結果一個月也好幾塊,總是覺得彆扭是不?

下面就分享 2 個節省 GET 次數的方法,GET 數目太大的朋友可以參考下。

一、調節快取壽命

這是七牛新出的一個設定:maxAge

通過配置七牛的空間屬性中 maxAge, 達到配置 HTTP header 中 Cache-Control:max-age 的目的。通俗來說就是控制快取重新整理的時間,那當然設定越長,越能節省 GET 抓取數目了:七牛&又拍雲CDN雲端儲存節省GET次數的小技巧想都不用想,設定為最長的2147483647 秒:

七牛&又拍雲CDN雲端儲存節省GET次數的小技巧

二、開啟防盜鏈

這個是必須開啟的,省的出現不但文章被人採集,而且資源都被人直接盜用的尷尬局面!直接開啟白名單,將你手頭的域名加入即可,避免出現大水衝了龍王廟的情況,並且把空 referer 給禁止下:

七牛&又拍雲CDN雲端儲存節省GET次數的小技巧

三、針對搜尋引擎

這個方法比較新穎,應該是我最先想到的!

原理比較簡單:在 dnspod 解析七牛靜態域名(前提是已自定義了七牛靜態域名,比如我的 static.zhangge.net)時,額外新增一條解析搜尋引擎線路的 A 記錄,指向我們的源伺服器 IP,預設線路則 cname 到七牛的 CDN。這樣一來,一大波搜尋引擎的抓取就分配到了你的源伺服器,而非七牛!當然也就起到了節省 GET 次數的效果了!

簡單的說下步驟:

A. 對七牛自定義域名新增搜尋引擎線路解析,指向源伺服器:

七牛&又拍雲CDN雲端儲存節省GET次數的小技巧

B. 在源伺服器新增自定義域名的監聽模組,以 Nginx 為例,如下所示:

123456789101112131415161718192021 server{server_name static.zhangge.net;index404.htmlindex.php index.html;root/home/web/zhangge.net;#和zhangge.net檔案路徑保持一致location~/.*\.(php|php5)?${deny all;}location/{if(-f$request_filename){#如果存在請求檔案則直接展示;break;}return404;#其他則返回404,避免搜尋引擎收錄重複內容。}location~(robots.txt){#針對這個靜態域名額外寫一個robots.txtrewrite/robots.txt/static_robots.txt last;}location~.*\.(gif|jpg|jpeg|png|bmp|swf|css|js)${expires30d;}}

 C. 最後在網站根目錄新增 static_robots.txt 檔案,內容如下:

1234567891011121314151617181920212223 # robots.txt for statice domainUser-agent:BaiduspiderAllow:/wp-content/uploads/*.jpg$Allow:/wp-content/uploads/*.png$Disallow:/User-agent:360SpiderAllow:/wp-content/uploads/*.jpg$Allow:/wp-content/uploads/*.png$Disallow:/User-agent:Baiduspider-imageAllow:/wp-content/uploads/*.jpg$Allow:/wp-content/uploads/*.png$Disallow:/User-agent:360Spider-ImageAllow:/wp-content/uploads/*.jpg$Allow:/wp-content/uploads/*.png$Disallow:/User-agent:*Disallow:/

全部完成後,你可以在本地 hosts 將七牛自定義靜態域名的解析指向你的源伺服器 IP,模擬搜尋引擎抓取,驗證本次設定效果。

I. 首頁、分類及文章均為 404:

七牛&又拍雲CDN雲端儲存節省GET次數的小技巧

II. 圖片可以正常訪問:

七牛&又拍雲CDN雲端儲存節省GET次數的小技巧

III. 不一樣的 robots:

七牛&又拍雲CDN雲端儲存節省GET次數的小技巧

如此一來,不但可以節約搜尋引擎抓取的 GET 次數,還意外的做好了映象站的 SEO 工作,因為非靜態資源全部返回 404,就算你搜索引擎不遵守 robots 也沒轍!讓你瞎收錄!

好了,本文就介紹到這,理論上來說同樣適用於又拍雲,感興趣的童鞋可以去自行測試看看。看不懂文章的童鞋就別瞎評論了!做你該做的去吧!

七牛免費帳號註冊==>傳送門

四、終級大招

以下內容為 2015 年 3 月 4 號最新更新:

最近網站的流量砰的一下就上來了,一天 3000 多 IP,結果問題來了,七牛的免費套餐爆表了:

GET 次數每天 10W+:

七牛&又拍雲CDN雲端儲存節省GET次數的小技巧

下載流量每天 5、6GB:

七牛&又拍雲CDN雲端儲存節省GET次數的小技巧

很明顯,這樣下去免費套餐根本扛不住,遲早要爆表收費!

解決辦法很簡單,在七牛的基礎上套一層百度雲加速或 360CDN 好了。

我在百度雲加速 3.0 的 DNS 解析如下所示:

七牛&又拍雲CDN雲端儲存節省GET次數的小技巧

其中大眾線路解析到阿里云云盾的 WAF 地址,搜尋引擎則解析到我網站的真實 IP,然後七牛的 cname 記錄則套上百度雲加速的快取(圖中的 static 記錄),以此來解決七牛流量和 GET 爆表的問題!

實際上這樣設定,七牛的加速也就沒了意義,因為都快取到了百度 CDN 節點了!這樣做我主要是為了用到七牛的縮圖功能!!

這樣設定還有一個好處,平常大眾線路是直接回源,也就是指向雲盾的 WAF 節點,因為就算不用百度的快取,真實 IP 也不會被洩漏!一旦受到攻擊,雲盾也扛不住了,那麼我們只要理解開啟百度的快取即可實現雙重防護!

更新完畢,經供參考!