迁移博客到香港虚拟空间
原文: https://rebootcat.com/2020/09/20/virtual_space_blog/
緣起
我的博客一直采用的是 github pages 來托管,中間斷斷續續的也沒怎么管理過,偶爾寫幾篇博客,所以也就沒怎么關心過訪問速度,搜索引擎收錄等問題。
不過我對博客一直還是情有獨鐘,我覺得像我一樣的軟件工程師,如果能有個人博客,并且保持一定程度的更新率還是很有必要的。
這次遷移主要考慮三個原因:
- 訪問速度較慢
- 博客還不支持 https
- 谷歌搜索引擎收錄較少
github pages 服務器位于美國,對于中文博客來說,訪問還是有一些慢的,且不說 github 未來在我國很有可能被 feng,所以打算遷移到國內來。之前博客其實是有部署過雙線的,國外走 github,國內走 coding,但奈何 coding 不爭氣,后來我干脆停了 coding 的解析。現在打算找一個付費的香港虛擬主機,一年幾十塊錢搞定。
另外就是由于之前已經采用了 rebootcat.com 這個域名,所以無法在 github pages 上開啟 https(當然方法是有的,比如使用 cloudflare 加速,這個詳見我另外一篇博文),所以這次的遷移也打算開啟全站 https。
購買香港虛擬主機
虛擬主機是什么?
虛擬主機(英語:virtual hosting)或稱 共享主機(shared web hosting),又稱虛擬服務器,是一種在單一主機或主機群上,實現多網域服務的方法,可以運行多個網站或服務的技術。虛擬主機之間完全獨立,并可由用戶自行管理,虛擬并非指不存在,而是指空間是由實體的服務器延伸而來,其硬件系統可以是基于服務器群,或者單個服務器。(來自某百科)
簡單來說,虛擬主機就是你可以用來托管網站,給你一定量的存儲空間,以及訪問流量,還有IP 或者域名綁定等。
這里需要說明的是,你能搜到很多免費的虛擬空間,免費的我個人不太建議,免費的有很多問題這里就不細說了,況且付費的也沒有很貴,一年幾十塊錢,當然還是有可能跑路的(手動狗頭)!
如上圖所示,這是我購買的虛擬主機的控制面板,提供了比較方便的中文管理面板,比如域名綁定,緩存設置,SSL 設置,FTP 管理等。
具體是哪一家,我就不說了(沒有給我廣告費,我的服務商看到了歡迎聯系)。
綁定域名
由于之前是解析到 github pages 的,現在購買了虛擬主機后,會有一個新的 IP,需要重新解析域名到這個 IP 上
如上圖所示,紅色框里面的就是新加的兩條 DNS 解析記錄,黃色框里面就是之前解析到 github pages 的記錄,現在我把他們全部暫停了(以防后期會用到)。
解析完成之后,等待生效,使用多地 ping 的工具去測試一下 DNS 解析是否生效了。或者你本地使用 ping 看是否生效了。
$ ping rebootcat.com -c 4 [10:45:50]
PING rebootcat.com (109.206.246.144): 56 data bytes
64 bytes from 109.206.246.144: icmp_seq=0 ttl=52 time=44.976 ms
64 bytes from 109.206.246.144: icmp_seq=1 ttl=52 time=49.814 ms
64 bytes from 109.206.246.144: icmp_seq=2 ttl=52 time=46.947 ms
64 bytes from 109.206.246.144: icmp_seq=3 ttl=52 time=46.809 ms--- rebootcat.com ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 44.976/47.136/49.814/1.731 ms
可以看到上面解析到了新的 IP 上。
FTP 上傳網站源碼
我的博客是基于 hexo 搭建的,之前是直接把網站源碼發布到 github pages 上了:
hexo d -g
現在需要把生成的網站源碼打包上傳到虛擬主機上。
hexo 生成的網站源碼位于 public 目錄下:
zip -r blog.zip public
然后把 blog.zip 通過面板上的 在線文件管理 上傳到虛擬主機的根目錄里,比如我的根目錄是 /wwwroot/,然后點擊解壓。
完成之后,瀏覽器輸入網站
http://rebootcat.com
看能否正確響應。一般來說,沒什么問題,如果無法訪問,請聯系你的虛擬主機提供商。
自動化上傳網站源碼
上面的步驟,基本上已經完成了博客遷移的大部分工作了。不過對于程序員來說,怎么能每次更新博文之后還要重復上面的步驟,甚至是需要每次用瀏覽器打開虛擬主機控制面板上傳網站源碼,那豈不是很麻煩,并且不夠極客精神。
那必然是要做成自動化的方式,一個命令搞定網站更新。
其實也簡單,就是利用服務商提供的 FTP 口令,使用 python 腳本自動化上傳網站源碼,實現自動化更新。
python 腳本可以直接從我的 github 下載:
https://github.com/smaugx/dailytools/blob/master/ftpblog.py
然后修改代碼里的網站域名以及 ftp 口令,改成你自己的,修改上傳的本地目錄以及遠程目錄,然后執行腳本自動化上傳:
python ftpblog.py
配置 HTTPS
使用的是 https://freessl.cn/ 生成免費的 HTTPS 證書。
打開網站,輸入你的域名以及郵箱,根據提示下載一個工具 KeyManager,然后生成證書:
然后回到 freessl.cn 網站頁面進行 DNS 驗證:
目的就是為了驗證你的域名的所有權。這里根據提示,去 DNS 解析的地方設置解析記錄。
驗證成功之后使用 KeyManager 導出證書:
然后會得到一個類似于 rebootcat-com-nginx-0909002710.zip 的包,解壓之后會得到兩個文件:
rebootcat.com_chain.crt
rebootcat.com_key.key
用編輯器打開這兩個文件,或者直接 cat 這兩個文件,一個是 SSl 的證書,一個是 SSL 密鑰,把這兩個文件的內容拷貝到虛擬主機面板的 SSL設置處:
并且開啟了 http 跳轉 https。
到此, HTTPS 證書設置就完成了。
注意需要記住 KeyManager 的主密碼
試試用 https://rebootcat.com 看能否正確訪問呢?
網站云監控
由于購買的是香港的虛擬主機,畢竟一年也才幾十塊錢,很難說服務提供商就跑路了,為了避免這一類事情發生的時候導致博客無法訪問,有必要對博客網站進行一些云監控,一旦出現異常,則告警。
免費的網站監控工具有很多,我用的是阿里云的監控以及 UpTimeRobot 的網站監控:
- https://uptimerobot.com/dashboard
- https://cloudmonitor.console.aliyun.com/
這個自行設置一下,注意設置好報警閾值,不然可能會造成誤報:
所以一旦出了很嚴重的報警,那么說明你的服務商跑路了。。。
效果
這里就簡單貼一下遷移前后的效果圖:
遷移前:
遷移后:
可以看到還是有很好的改善的,畢竟服務器位于香港。
The End
到此,博客遷移就完成了,訪問速度提升了,也開啟了 https。接下來我會考慮對博客首頁做一些優化,但由于現在圖片走的其實還是 jsdelivr 的國外 cdn,所以速度還是有點慢,可以考慮直接把圖片放到網站根目錄下,畢竟現在使用的是虛擬主機。
后面再說吧,也可以考慮把圖片等放到阿里云或者騰訊云對象存儲上。
Blog:
-
rebootcat.com
-
email: linuxcode2niki@gmail.com
2020-09-20 于杭州
By 史矛革
總結
以上是生活随笔為你收集整理的迁移博客到香港虚拟空间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hexo Next 博客添加相册瀑布流
- 下一篇: 使用 mkdocs 搭建个人 wiki