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