Hugo和IPFS:這個博客是如何工作的

有趣的事實:如果您正在閱讀本文,那麼您正在使用分佈式網絡。自2019年2月中旬以來,這個博客With Blue Ink已通過IPFS和Cloudflare分佈式Web網關提供服務。

去年11月,我發表了關於如何從IPFS運行靜態網站的博文。我已經以自己和家人使用的方式運行了幾個應用程序,我覺得是時候遷移我的博客了。由於我處理了一些問題,其中一些問題在下面進行了解釋,這比預期的要長一些,但是大約一個月前我翻轉了(DNS)交換機並最終關閉了託管博客的單實例虛擬機。

這個決定讓我焦慮不安,但一個月的事情看起來幾乎完全不錯。

黑客新聞+ Reddit效果

自從遷移到IPFS以來,發生了一些事情。

一個多星期前,我發佈了一篇關於規範化Unicode字符串的重要性的博客文章,這些字符串幾乎是病毒式的,在Hacker News首頁的第4位達到頂峰,並獲得了r /編程的頭把交椅,並被納入一些熱門時事通訊。(感謝您的熱愛和精彩的討論!

然後,在週一我發佈了一個新的開源項目Hereditas,該項目在Reddit上也有很好的曝光率。

對於過去每月平均少於3,000次頁面瀏覽量的博客,這種情況發生了:

Hugo和IPFS:這個博客是如何工作的

3月13日星期三,交通量比一週前的同一天高出5,060%。在一天之內,使用Blue Ink的頁面瀏覽量幾乎是之前一個月的兩倍。

儘管流量顯著增加,但這是為網站提供服務的主要IPFS節點的CPU使用情況:

沒有。

Hugo和IPFS:這個博客是如何工作的

由於通過IPFS分發內容並通過Cloudflare CDN提供服務,With Blue Ink在5,000%的流量高峰後幾乎沒有對性能和可用性的影響。

不僅如此:測試表明,該網站對於全世界的用戶來說一直非常快。

遇見Hugo

使用Blue Ink是一個靜態網站。我在一堆Markdown文件中編寫內容,然後使用Hugo生成HTML頁面。整個網站(內容,主題,腳本)是開源的,它發佈在GitHub的ItalyPaleAle / WithBlueInk上。

三年前,當我開始使用這個博客時,我最初選擇了另一個流行的靜態網站生成器Jekyll。但是,當我正在努力遷移到IPFS時,我不得不用Hugo替換Jekyll,因為Jekyll不支持相對URL。使用Jekyll時,所有生成的URL都/以固定的基本URL 開頭,當您通過基本URL是動態的IPFS瀏覽內容時,這不起作用(有關其重要性的詳細信息,請參閱我之前的IPFS指南)。

遷移到Hugo帶來了一些其他巨大的好處。Hugo是一個用Go編寫的小應用程序,它比Jekyll快得多,它是一個Ruby寶石。不僅Hugo在構建網站方面更快(實際上,感覺幾乎是即時的),但由於它是一個單獨的,自包含的二進制文件,它在CI環境中的安裝速度也更快。我的CI構建從五分鐘到不到一分鐘。此外,Hugo擁有許多強大而有趣的功能,並且它得到了積極的維護。

認識IPFS

星際文件系統,或IPFS,是分佈在一個對等網絡的方式不可改變的內容的協議和網絡。

如果您不熟悉IPFS,請將其視為分佈式CDN。啟動IPFS節點後,您可以使用它在IPFS網絡上發佈文檔,世界各地的其他人可以直接向您請求。最好的事情是,只要有人向您請求文件,他們就會立即開始將其播種給其他人。這意味著當使用IPFS時,文檔越流行,它就越複製,因此其他人下載它的速度就越快。

通過IPFS分發文件可以非常快速且非常有彈性。由於分佈式和點對點,IPFS網絡可以抵禦審查和DDoS攻擊。

此外,IPFS上的所有文檔都通過其內容的哈希來解決,因此它們也是防篡改的:如果有人要更改文件中的單個位,則整個哈希值會發生變化,因此地址會有所不同。

IPFS的問題在於它只是一種內容分發協議,而不是存儲服務。它更類似於CDN而不是NAS。我仍然需要一些服務器,我目前有三臺服務器,配置在具有IPFS集群的集群中。它們是Azure上小巧,便宜的B1ms VM(1個vCPU,2 GB RAM),運行於世界各地的三個不同地區。您可以在上一篇文章中閱讀我如何設置它們。

Hugo和IPFS:這個博客是如何工作的

由於使用IPFS,這種簡單且相對便宜的解決方案能夠提供“100%”正常運行時間並且具有DDoS抗性。這些網站會自動在群集中的所有節點上進行復制,這些節點會立即開始播種,並且隨著地理位置分散的用戶,虛擬機將在全球範圍內獲得極高的速度。

我們來看看這個架構

博客的架構相對簡單:

Hugo和IPFS:這個博客是如何工作的

將一些新代碼推送到GitHub上的主分支會觸發Azure管道中的自動構建,該管道克隆源代碼並運行Hugo來構建網站(它都是免費的!)。您可以azure-pipelines.yaml在repo 中的文件中看到配置。

相關推薦

推薦中...