免費獲取自定義域名高速圖床(Backblaze B2 + Cloudflare CDN)

新浪圖床忽然不給外鏈了後,我便轉向了github圖床,但github圖床外鏈經常被牆,導致wordpress博客訪問量下降,我決定自建一個可自定義域名的免費CDN加速的外鏈圖床。

圖床指的就是儲存圖片的服務器,網站管理員為了方便維護和管理,會將圖片存放在專門的服務器集群裡,通常還會在外層套層 CDN 做分發。市面上的公開圖床很多,例如 imgur、sm.ms、imgbox 等等,這些圖床都開放了 API 方便開發者調用。不過由於運營成本問題,也有不少圖床相繼倒閉或者轉入收費。

怎麼自建圖床?如果是有VPS主機服務器,安裝個 Chevereto 開源圖床網站程序即可。但這是VPS單純用來做圖床給博客外鏈圖片用,有點浪費且不易長久。圖片存儲最好是放在大公司的雲服務平臺上, Backblaze B2 是一個雲存儲解決方案,類似於Amazon AWS S3, 但是價格稍微便宜一些. Backblaze的雲存儲每個註冊用戶擁有10G免費空間以及每天1G的下載流量,上傳流量不限。超過免費額度後的價格以及與其他幾家主流商家的對比見下圖。

免費獲取自定義域名高速圖床(Backblaze B2 + Cloudflare CDN)

Backblaze的原價

在backblaze存儲1T的內容也僅需$5/月,不過流量費還是比較貴的 ,上傳流量不限。由於 Bandwidth Alliance(帶寬聯盟),Backblaze 到 Cloudflare 之間的出口是完全免費的, 所以Backblaze B2可以配合cloudflare CDN來使用達到無限免費下載流量。

免費獲取自定義域名高速圖床(Backblaze B2 + Cloudflare CDN)

Backblaze宣佈與Cloudflare合作,免除掉Backblaze到Cloudflare的流量費用。

因此我們得到如下網盤/圖床產品:

  1. 10G存儲空間免費, 全球最可靠的雲存儲服務
  2. 上行免費
  3. 下行免費
  4. 可自定義域名
  5. 全球最強CDN加速

搭建自定義域名圖床教程開始

首先,你需要有一個域名,選擇一個子域名作為圖床的域名。關於圖床的二級域名命名,一般有以下幾種:

img

images

assets

static (不僅存放圖片,還有存放 css、js)

然後,創建 Backblaze B2 Bucket(存儲桶) 。

在 Backblaze’s B2 storage 註冊一個賬號,註冊好了後,在後檯面板選擇 “Buckets”(存儲桶),然後點擊 “Create a Bucket”,創建一個存儲桶。選Public,以便所有人可訪問。

免費獲取自定義域名高速圖床(Backblaze B2 + Cloudflare CDN)

回到 “Buckets(存儲桶)” , 在你剛剛創建的存儲桶上,點擊 “Upload/Download(上傳/下載)”. 上傳一個臨時的測試文件到存儲桶中,然後在你剛上傳的文件處,點擊 “i(information,信息)”. 這是為了獲取下一步需要的信息,你的存儲桶處於哪臺服務器上.

免費獲取自定義域名高速圖床(Backblaze B2 + Cloudflare CDN)

免費獲取自定義域名高速圖床(Backblaze B2 + Cloudflare CDN)

在上面的截圖中,可以看到,我的文件是放在 https://f000.backblazeb2.com/ – 記住這個域名

最後,獲取到地址之後就登錄cloudflare,給你的域名添加一個子域名,並新增一條cname記錄,指向文件地址中的域名。例如:

將img.bawodu.com通過cname到f000.backblazeb2.com

效果便是

https://img.bawodu.com/file/nilayp/img.jpg

指向

https://f001.backblazeb2.com/file/nilayp/img.jpg

免費獲取自定義域名高速圖床(Backblaze B2 + Cloudflare CDN)

新增一條cname記錄到backblazeb2.com

根據上面截圖中的記錄, 我使用這個子域名 img.bawodu.com作為圖床的域名, 並且指向 f000.backblazeb2.com. 確保 Cloudflare 橙色保護盾是開啟的狀態, 這代表請求是通過了 Cloudflare 的 CDN 代理層. Cloudflare 默認的 TTL 將被設置為 auto(自動).

雖然啟用了CloudFlare CDN,但發現緩存永遠不能命中(MISS),我們需要對添加一個緩存指令(默認是不緩存),打開存儲桶設置,桶信息設置為{"cache-control":"max-age=43200"},其中43200單位為秒(s),意思就是說43200秒內CF不會去從源站重新獲取資源。

免費獲取自定義域名高速圖床(Backblaze B2 + Cloudflare CDN)

Cloudfalre的ssl設置需要使用full,因為backblaze僅提供https訪問地址。

免費獲取自定義域名高速圖床(Backblaze B2 + Cloudflare CDN)

設置SSL,開啟 https 訪問

當然你如果覺得文件鏈接不好看太長了,你也可以使用cloudflare自帶的頁面規則301 ,縮短鏈接地址,比如通過 https://img.bawodu.com/img.jpg 直接訪問 https://f001.backblazeb2.com/file/nilayp/img.jpg 。設置方法如下圖:

免費獲取自定義域名高速圖床(Backblaze B2 + Cloudflare CDN)

使用cloudflare自帶的頁面規則301 重定向

最後,請注意:Backblaze B2 流出到 Cloudflare 的流量是免費的,也就是說就算 CF 回源 B2 也沒有 $0.01/GB 的流出流量費,相當於免費無限流量。不過這並不能阻止壞蛋直接用 B2 的域名(而不是套了 CF 的域名)刷流量。


分享到:


相關文章: