CODING Pages 靜態網站升級騰訊雲新版踩坑小記


本文首發於個人博客CODING Pages 靜態網站升級騰訊雲新版踩坑小記

自己的踩坑記錄證明域名未備案的同學就不要升級了,新版需要付費,但升級后強制的境外 CDN 加速導致訪問速度反而不如舊版快。

升級背景

之前把博客雙部署到了 CODING 靜態網站和 GitHub Pages,國內的訪問速度快了不少。前幾天登錄 CODING 后台,突然發現多了一個新版升級提醒。

升級提醒

新版最大的變化就是同騰訊雲進行了打通,直接把網站放到了騰訊雲的對象存儲 COS 上,其他 CDN 加速、SSL 證書管理也是騰訊雲的功能。

新版的變化及優勢

新版開始收費了

CODING Pages 依托騰訊雲資源提供相關靜態托管能力,CODING 平台本身不收取任何費用。該產品使用了騰訊雲對象存儲 COS、內容分發網絡 CDN、SSL 證書產品,其中 COS 和 CDN 采用用量計費模式,SSL 證書免費,所使用到的其他相關騰訊雲產品本身亦會有一定的免費額度。

新版因為使用了騰訊雲的相關資料,所以要開始收費了。對於收費,我是能夠接受的,前提是能夠提供比免費更好的服務。我的圖床就是使用的騰訊雲的對象存儲,加載速度很快,一個月幾毛錢的費用低得基本可以忽略。

升級流程

新版升級界面如下:

新版升級設置界面

因為新版是基於騰訊雲的,所以升級需要先在騰訊雲進行實名認證並授予相關權限。我因為之前圖床就是用的騰訊雲對象存儲,所以已經實名過了。

騰訊雲服務授權

之前 CODING Pages 舊版是部署在騰訊雲新加坡節點,現在新版部署節點可選香港、北京、上海、廣州四個,但未備案域名只能選香港。

節點選擇提醒

添加自定義域名前,需要前往騰訊雲開啟 CDN 功能,這一步就是我覺得新版最大的坑

下一步去域名托管商更改解析記錄,解析記錄值都是指向了 cdn.dnsv1.com,這也是為什么需要開啟 CDN 功能的原因。

部署的時候,「網站類型」我最開始選的是「Hexo」,結果部署失敗,部署日志也不知道抽啥風,一直顯示不出來,原因也不好排查。我嘗試將網站類型改為「靜態網站」,重新部署就成功了。

這 CDN 不能要

新版升級完成后,立馬測了一波速,然后被結果給嚇到了,從之前的一片綠油油變成了一片慘淡的黃色,訪問速度下降了不止一點半點。這就很費解了,同樣都是騰訊雲,之前部署在新加坡節點,現在搬到香港節點了,速度不升反降是什么情況。

新版開啟 CDN 測速結果

檢查解析 IP,發現域名全都被解析到了德國、愛爾蘭、美國,和想象中的香港地址完全不是一回事。

新版開啟 CDN 域名解析結果

這種情況我估摸着肯定是 CDN 的鍋,去騰訊雲后台一檢查,發現已經開啟的 CDN 設置的服務區域是「中國境外」。我想當然地以為「中國境外」的含義是指只有從國外訪問網站的時候才會通過 CDN 訪問,國內則是直接訪問香港源站,這樣雖然國內享受不到 CDN 加速,國外我設置是解析到 GitHub Pages,也用不上,但想着無非就是個雞肋而已。

但一查文檔,發現自己還是太單純了:

「中國境外」:全球用戶訪問均會調度至中國境外的加速節點進行服務。

「中國境外」

也就是說,不管是從國內還是國外訪問,都會被調度到國外的 CDN 加速節點進行接入,想不經過 CDN 直接訪問香港源站都不行。而比較符合我想要的效果的「全球」則需要域名進行備案之后才能開啟,未備案域名開啟 CDN 的話就只能選「中國境外」

本來是用來加快訪問速度的 CDN,對於使用未備案域名的博客來說,已經不僅僅是雞肋了,反而是拖累。本來直接訪問香港就能解決的事情,現在非得繞道德國、愛爾蘭、美國才行,這訪問速度能快起來才是怪事。

嘗試直連香港源站

既然這是 CDN 導致的,那我把 CDN 直接給關了,直連香港源站不就行了?

關閉 CDN

進入騰訊雲后台-->「內容分發網絡」-->「域名管理」,關閉 CDN 加速。

關閉 CDN

更改域名解析記錄

在 DNSPod 里將國內訪問解析到 CODING 提供的默認訪問地址,此時再檢查 DNS 解析結果發現就全部都指向了香港的 IP,達到了自己想要的效果。

致命的證書問題

設置成直接訪問香港源站后,速度果不其然就上來了,比訪問新加坡節點速度還要快上一點。但很快就出現了一個更加嚴重的問題——證書錯誤。

新版申請的 SSL 證書是和 CDN 綁定在一起的,在騰訊雲的證書管理里面只能部署到 CDN,而我把 CDN 關閉了,現在直接訪問的是香港源站。源站的證書是頒給 *.cdn.my.qcloud 的,和我的域名不一致,這就會導致瀏覽器直接報警說網站不安全,這是不可接受的。我嘗試解決這個問題,但無奈水平有限,最后也沒能找到解決的辦法。如果有知道如何解決證書問題的同學,麻煩指導我一下,不甚感激。

現在情況就是如果想要實現自定義域名 HTTPS 訪問,就需要打開 CDN,打開 CDN 就意味着犧牲訪問速度,這還是在 CDN 和 COS 需要付費的情況下。矛盾無法調和,所以最后我只能又回退到舊版了,幸好 CODING 目前還沒有關閉舊版的入口,給了我一個反悔的機會。

總結

花了差不多一天的時間,最后還是老老實實回到了舊版,相當於一天白折騰了。域名沒有進行備案的話,在國內使用不方便的地方真的太多了。CODING 新版靜態網站我覺得對於使用已備案域名的同學來說還是不錯的,配置簡單,CDN 加速、SSL 證書一步到位。但同樣的對於這些同學來說可供選擇的方案太多了,免費的也有不少,CODING 的新版並沒有太大的吸引力。

而對於未備案域名的同學新版則非常不友好,完全是負優化,完全沒有升級的必要,誰會花錢找罪受呢。CODING 工程師說舊版后續會下線,到時候如果自定義域名的問題沒有得到改善的話,可能就需要考慮遷移平台了。現在舊版還能用就先用着。

我向 CODING 反饋了自定義域名的問題,希望能同舊版一樣使用 Let's Encrypt 的證書,不要強行同騰訊雲的 CDN 加速綁定在一起,后續如果有進一步的反饋結果的話我會同步到博客中。

參考鏈接

官方靜態網站服務升級指南


免責聲明!

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



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