前段時間,team使用了七牛鏡像的功能,用到了,就決定了解一下。php
七牛官網的說明以下:html
設置鏡像存儲,源站資源(文件/圖片等)根據初次訪問自動同步到七牛雲存儲,數據平滑遷移。可以使用綁定的自定義域名訪問鏡像存儲的源站資源。數據庫
配置鏡像存儲後,由於鏡像源和鏡像空間內容基本一致,將可能致使搜索引擎對源站進行封鎖,可配置搜索引擎的 robots.txt 文件避免此狀況發生。七牛雲存儲
配置方式以下:緩存
登錄七牛,選中一個存儲對象,點擊存儲鏡像,輸入鏡像源,也就是你網站的地址,點擊保存設置便可。頁面以下:服務器
假設咱們輸入的鏡像源是 http://www.cnblogs.com/CraryPrimitiveMan ,你的七牛存儲對象的地址是 xxx.qiniu.com ,而後你能夠訪問 xxx.qiniu.com/830384/o_qiniu-page.png ,其實他最終訪問的是 http://images.cnblogs.com/cnblogs_com/CraryPrimitiveMan/830384/o_qiniu-page.png ,也就是上面的那張圖片。並且你會在你的存儲對象中看到相應的圖片。函數
一樣若是咱們的地址是一個 action,action 的做用是輸出一個圖片,這樣的話是一樣可行的。在 action 中可使用以下 php 代碼:網站
$filename = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQF48ToAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0xrUEhlbDdtUjRRXy01YUJqRzFLAAIEh7MhVwMEECcAAA=='; $src = imagecreatefromjpeg($filename); header('Content-Type: image/jpeg'); imagejpeg($src, null, 100); imagedestroy($src);
上面的例子只是簡單的讀取圖片數據並輸出,但在真正的項目中你可能會遇到不少圖片的操做,好比兩張圖片合併,在圖片上寫入文字等等。搜索引擎
關於這方面的內容,你能夠查看相關的php文檔 GD 和圖像處理函數.net
須要注意如下幾點:
若是源站的 URL 是相似這樣的:http://example.com/a/b/c/d.txt?version=20130807 ,那麼鏡像存儲會將文件 d.txt 抓取過來,並在七牛保存爲a/b/c/d.txt (在七牛雲存儲中稱爲 key),忽略問號後面的參數。若是源站的 URL 是相似這樣的:http://example.com/?version=20130807 ,那麼鏡像存儲會將訪問該 URL 獲得的結果保存在七牛雲存儲,可是保存的 key 爲空的 key 值(不是不存在)。
七牛的鏡像存儲看起來和傳統的 CDN 比較像,兩種都會在加速節點數據不存在的時候回源站抓取。不一樣之處在於,鏡像存儲是存儲(和普通的存儲沒什麼不一樣,鏡像功能只是存儲的一個特性),不是緩存,故此鏡像存儲對每一個資源來講只回源一次,後續訪問的時候就再也不回源了。因此源站的數據發生變化的時候,你須要主動去刪除鏡像存儲裏面的文件,從而達到強制刷新的目的。
若是終端用戶第一次訪問某個資源,終端用戶首先從七牛服務器上訪問資源,再讓七牛的服務器回源站取資源,而後將取回的資源緩存在七牛雲存儲上。所以,第一次訪問會有必定的延時,可能比從源站取稍微慢一點,這是正常的,可是第二次第三次訪問就能夠直接從七牛的 CDN 上取,通常狀況下比從源站取資源會快不少。也正由於鏡像存儲第一次取資源時會有延時,所以不推薦鏡像文件大小超過 5M 的大文件資源,不然第一次訪問會很慢或者出現服務器超時等錯誤。
大多數搜索引擎都提供有可以檢測鏡象站點的適當的過濾系統,一旦發覺鏡象站點,則源站點和鏡象站點都會被從索引數據庫中刪除。能夠給鏡像空間獨立上傳一個 robots.txt 禁止搜索引擎索引。可以使用七牛提供的:robots.txt模板文件。也能夠新建一個二級域名,如img.ludou.org,把要CDN的文件放到這個二級域名下,而後將這個二級域名鏡像到七牛。這樣就不會鏡像到主站,被搜索引擎誤會了。
參考摘取:
使用七牛的鏡像存儲功能可能會致使網站被K
七牛的鏡像存儲介紹和其原理
鏡像存儲功能在源站 URL 含有問號時的抓取資源規則
鏡像存儲與 qrsync 數據同步的使用