gravatar 國內鏡像搭建


前言

wordpress的頭像默認使用的gravatar服務, 但是其地址source.gravatar.com在國內完全無法訪問.

所以想着自己搭建一個鏡像, 可以查看下方的搭建過程

搭建

看網上很多教程, 說的都是通過某某雲服務商的cdn服務來進行代理, 但是我試了很久也沒有成功. 原因很簡單, 域名被國內屏蔽了, cdn 也是在國內訪問訪問的, 所以拉不到數據也正常.

也就是說, 歸根結底是屏蔽的原因, 如果能夠繞過屏蔽, 那么就可以成功了. 百思不得其解. 直到有一天, 我在阿里雲的oss后台看到了這個:

image-20210706225142154

這不就是我想要的功能么? 我的思路是這樣的:

  1. oss放到香港
  2. 通過oss代理secure.gravatar.com
  3. 通過cdn代理oss進行加速

按照這個思路, 訪問secure.gravatar.com的地址在香港, 想必是可以訪問到的. 說干就干. 以下平台基於阿里雲.

創建Bucket

image-20210706225538635

注意, 地域要選擇在香港.

配置鏡像回源

image-20210706225649777

image-20210706225751504

注意, 攜帶請求參數要選中.

測試回源配置

訪問一個默認頭像:

https://hujingnb-gravatar.oss-cn-hongkong.aliyuncs.com/avatar/9b59d04405217fb93755abf434aa9c1e?s=64&d=mm&f=y&r=g

請將其中的Bucket名稱更換為你自己的. 成功訪問后, 你會在文件管理中看到剛剛請求的文件已經保存了.

image-20210706225959501

到這一步, 說明oss配置已經 OK 了.

如果你不需要配置 cdn, 那么, 到這一步其實已經可以使用了. 不過香港服務器在內地訪問速度上還是不太理想, 建議配一下cdn加速訪問

配置cdn

添加cdn域名. 鏈接: https://cdn.console.aliyun.com/domain/list

image-20210706230143189 image-20210706230249792

注意, 需要使用備案過的域名才可以. 然后選擇源站信息, 這里代理我們剛剛創建的oss即可.

image-20210706230448354

創建域名解析

image-20210706230715889

這里提示需要進行域名解析. 到域名服務商配置一下就行. 域名配置要等一會

image-20210708003802151

直到上圖的狀態CNAME都 OK 了. 就可以進行下一步了.

image-20210708003840327

啟用 HTTPS

點擊cdn域名的管理, 配置 HTTPS. 使用服務商提供的免費證書即可.

image-20210706231352365 image-20210706231414840

OK. 到這一步, 就已經可以通過cdn來訪問Gravatar的頭像. 為了防止之前的鏈接緩存問題, 來個不一樣的頭像試一下: 記得將其中的域名改成你自己的.

https://*.hujingnb.com/avatar/6d42d2d850afb2b15f51156f37c16f41?s=64&d=identicon&f=y&r=g

如果訪問成功, 說明你已經成功了. 再次回到oss文件管理, 發現剛剛訪問的文件已經下載了.

到這里, 你的gravatar代理已經可以投入使用了.

配置頭像過期

這里需要配置兩個過期, 如果文件一直不過期, 那么用戶頭像更新之后也拿不到最新的頭像.

1.配置 cdn 過期

cdn會將訪問的文件緩存在各地節點, 所以需要配置一下過期時間.

image-20210706233330809

2.配置 oss 過期

即使cdn文件過期了, 如果oss中文件還在, 會直接從oss中獲取, 仍然拿不到最新的頭像.

oss中, 可以配置文件的生命周期, 指定時間之后, 自動將文件刪除.

image-20210706233533018

比如, 可以配置一天后自動將文件刪除.

image-20210706233700335

結束

如果你到了這里, 應該已經配好了吧. 愉快的使用自己的鏡像吧. 對了, 你可以將oss的訪問權限改為私有, 然后在cdn授權一下私有Bucket的可讀權限即可.

image-20210706234037899

問題

最后, 說一下這樣配置的問題. 因為文件存儲到了oss, 而oss又是根據文件名進行緩存的. 當一個文件已經存在了, 就不會再次回源訪問了, 所以, 你會發現以下幾個頭像是相同的.

https://secure.gravatar.com/avatar/9b59d04405217fb93755abf434aa9c1e?s=64&d=mm&f=y&r=g
https://secure.gravatar.com/avatar/9b59d04405217fb93755abf434aa9c1e?s=64&d=retro&f=y&r=r
https://secure.gravatar.com/avatar/9b59d04405217fb93755abf434aa9c1e?s=64&d=wavatar&f=y&r=r
https://secure.gravatar.com/avatar/9b59d04405217fb93755abf434aa9c1e?s=64&d=identicon&f=y&r=r
https://secure.gravatar.com/avatar/9b59d04405217fb93755abf434aa9c1e?s=64&f=y&r=r

當然了, 如果是自己使用, 訪問頭像的參數都是固定的, 自然是沒有問題. 但如果要作為公共鏡像的話, 不同用戶訪問通過不同參數訪問到了同一個頭像, 就不太好了.

以上, 此方法穩定且費用極低, 但是建議僅個人使用, 不建議用作公共頭像.

當然, 如果不考慮費用的話, 可以買一個阿里雲香港的輕量服務器, 每月24元, 就可以通過nginx來進行反向代理, 不存在文件緩存的問題.

最后, 歡迎訪問我的小破站: https://hujingnb.com/archives/564


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM