Hexo 双线部署到 Coding Pages 和 GitHub Pages 并实现全站 HTTPS
我的博客地址:https://www.itrhx.com/
部署到 Coding Pages 的好處:國內訪問速度更快,可以提交百度收錄(GitHub 禁止了百度的爬取)
部署到 Coding Pages 的壞處:就今年來說,Coding 不太穩定,隨時有宕機的可能,群里的朋友已經經歷過幾次了,不過相信以后會越來越穩定的
部署過程中常見的問題:無法實現全站 HTTPS,Coding 申請 SSL 證書失敗,瀏覽器可能會提示不是安全鏈接
本文前提:你已經將 Hexo 成功部署到了 GitHub Pages,如果還沒有,請參考:《使用Github Pages和Hexo搭建自己的獨立博客【超級詳細的小白教程】》
本文將全面講述如何成功雙線部署到 Coding Pages 和 GitHub Pages 并實現全站 HPPTS,同時解決一些常見的問題!
Coding 已更新,新版頁面在創建項目的時候選擇 【DevOps 項目】,其他步驟一樣,然后進去項目里面,在左側依次選擇【持續部署】、【靜態網站】,就可以開啟 pages 服務了!
1.創建項目
進入 Coding 官網,點擊個人版登陸,沒有賬號就注冊一個并登錄,由于 Coding 已經被騰訊收購了,所以登錄就會來到騰訊云開發者平臺,點擊創建項目
項目名稱建議和你的用戶名一致,這樣做的好處是:到時候可以直接通過 user_name.coding.me 訪問你的博客,如果項目名與用戶名不一致,則需要通過 user_name.coding.me/project_name 才能訪問,項目描述可以隨便寫
2.配置公鑰
配置 SSH 公鑰方法與 GitHub Pages 的方式差不多,點擊你的頭像,依次選擇【個人設置】-【SSH公鑰】-【新增公鑰】
前面部署到 GitHub Pages 的時候就已經有了一對公鑰,我們直接將該公鑰粘貼進去就行,公鑰名稱可以隨便寫,選中永久有效選項
PS:公鑰儲存位置一般在 C:\Users\用戶名\.ssh 目錄下的 id_rsa.pub 文件里,用記事本打開復制其內容即可
添加公鑰后,我們可以右鍵 Get Bash,輸入以下命令來檢查是否配置成功:
若出現以下提示,則證明配置成功:
Coding 提示: Hello XXX, You've connected to Coding.net via SSH. This is a personal key. XXX,你好,你已經通過 SSH 協議認證 Coding.net 服務,這是一個個人公鑰3.配置 _config.yml
進入你的項目,在右下角有選擇連接方式,選擇 SSH 方式(HTTPS 方式也可以,但是這種方式有時候可能連接不上,SSH 連接不容易出問題),一鍵復制,然后打開你本地博客根目錄的 _config.yml 文件,找到 deploy 關鍵字,添加 coding 地址:coding: git@git.dev.tencent.com:user_name/user_name.git,也就是剛剛復制的 SSH 地址。
【2020.04.06 更新】coding 地址格式現在有所改變,類似于 git@e.coding.net:TRHX/TRHX.git,記住去倉庫復制你自己的即可。
添加完成后先執行命令 hexo clean 清理一下緩存,然后執行命令 hexo g -d 將博客雙線部署到 Coding Pages 和 GitHub Pages,如下圖所示表示部署成功:
4.開啟 Coding Pages
進入你的項目,在代碼欄下選擇 Pages 服務,一鍵開啟 Coding Pages,等待幾秒后刷新網頁即可看到已經開啟的 Coding Pages,到目前為止,你就可以通過 xxxx.coding.me(比如我的是 trhx.coding.me)訪問你的 Coding Pages 頁面了
【2020.04.06 更新】coding 分配的域名現在有所改變,類似于 https://p51l67.coding-pages.com
5.綁定域名并開啟 HPPTS
首先在你的域名 DNS 設置中添加一條 CNAME 記錄指向 xxxx.coding.me,解析路線選擇 默認,將 GitHub 的解析路線改為 境外,這樣境外訪問就會走 GitHub,境內就會走 Coding,也有人說阿里云是智能解析,自動分配路線,如果解析路線都是默認,境外訪問同樣會智能選擇走 GitHub,境內走 Coding,我沒有驗證過,有興趣的可以自己試試,我的解析如下圖所示:
【2020.04.06 更新】coding 分配的域名現在有所改變,類似于 https://p51l67.coding-pages.com,請注意解析當中記錄值的填寫。
然后點擊靜態 Pages 應用右上角的設置,進入設置頁面,這里要注意,如果你之前已經部署到了 GitHub Pages 并開啟了 HTTPS,那么直接在設置頁面綁定你自己的域名,SSL/TLS 安全證書就會顯示申請錯誤,如下圖所示,沒有申請到 SSL 證書,當你訪問你的網站時,瀏覽器就會提示不是安全連接
申請錯誤原因是:在驗證域名所有權時會定位到 Github Pages 的主機上導致 SSL 證書申請失敗
正確的做法是:先去域名 DNS 把 GitHub 的解析暫停掉,然后再重新申請 SSL 證書,大約十秒左右就能申請成功,然后開啟強制 HTTPS 訪問
這里也建議同時綁定有 www 前綴和沒有 www 前綴的,如果要綁定沒有 www 前綴的,首先要去域名 DNS 添加一個 A 記錄,主機記錄為 @,記錄值為你博客 IP 地址,IP 地址可以在 cmd 命令行 ping 一下得到,然后在 Coding Pages 中設置其中一個為【首選】,另一個設置【跳轉至首選】,這樣不管用戶是否輸入 www 前綴都會跳到有 www 前綴的了
在博客資源引用的時候也要注意所有資源的 URL 必須是以 https:// 開頭,不然瀏覽器依舊會提示不安全!
至此,我們的 Hexo 博客就成功雙線部署到 Coding Pages 和 GitHub Pages 了,并且也實現了全站 HPPTS,最后來一張 GitHub Pages 和 Coding Pages 在國內的速度對比圖,可以明顯看到速度的提升
總結
以上是生活随笔為你收集整理的Hexo 双线部署到 Coding Pages 和 GitHub Pages 并实现全站 HTTPS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 可以买黄金投资吗?黄金是否值得投资?
- 下一篇: 【Python CheckiO 题解】B