Go lang無疑是目前的當紅炸子雞,極大地提高了后端編程的效率,同時有着極高的性能。借助Go語言我們 可以用同步的方式寫出高並發的服務端軟件,同時,Go語言也是雲原生第一語言,Docker,Kubernetes等等著名的項目都是使用Go語言實現的。
Hugo 是基於 Go 語言的靜態網站生成器。
什么是靜態網站生成器?顧名思義,就是以最快的速度生成一個高可用的web頁面,我們知道Django作為一款非常流行的框架被廣泛應用,但是部署起來實在是太麻煩了,各種命令各種配置,動態頁面必然要涉及數據庫的配置和操作,另外只要涉及數據庫操作,你就不得不考慮sql注入等一系列的安全因素。而純靜態頁面則沒有這個煩惱,如果我們只需要一個簡單的站點,一些簡單的功能和頁面,比如博客,我們只想以極簡的方式用markdown語法寫下文字或者代碼,讓服務器訪問純靜態頁面,這就是靜態網站生成器可以提供給我們的好處。
為啥選擇Hugo?
Hugo是一種go語言編寫的靜態網站生成器。適用於搭建個人blog、公司主頁、help等網站,是一種小型的CMS系統。靜態站點的好處就是快速、安全、易於部署,方便管理。
Hugo的優點包含但不限於:
得益於Go的高性能,性能很快
世界上最快的靜態網站生成工具,5秒生成6000個頁面
文檔為Markdown格式,語法超簡單
Hugo 可以做靜態文件生成工具,還是高性能web 服務;
豐富的站點遷移工具,可以將wordpress,Ghost,Jekyll,DokuWiki,Blogger輕松遷移至 Hugo
超詳細的文檔
活躍的社區
更加自由的內容組織方式
豐富的主題模板,可以讓你的網站更加炫目多彩
多環境支持:macos ,linux,windows
首先,可以去go的官網網站下載安裝包 https://golang.org/dl/ 然后直接雙擊安裝即可,不需要配置環境變量,因為安裝過程自動配置,安裝完畢后,打開命令行,輸入
go version
顯示主版本號即表示安裝成功
然后,可以進行hugo的在線源碼編譯安裝,打開命令行,輸入下面的命令
go get -u -v github.com/spf13/hugo go build -o hugo main.go mv hugo $GOPATH/bin
如果你不想在線編譯安裝,也可以去hugo的官網 https://github.com/gohugoio/hugo/releases 下載穩定版的壓縮包,解壓之后配置一下環境變量也可以
裝完以后,在命令行內輸入
hugo version
打印出版本號即表示hugo安裝成功
在命令行中輸入命令
hugo new site hugo_blog
就生成了一個名字為hugo_blog的新站點,可以感受到速度非常快,和vue.js創建新站點的速度比起來簡直天差地別
打開配置文件config.toml,這是hugo的站點的相關配置,可以進行一些個性化的定制,改為下面這樣:
baseURL = "/" languageCode = "en-us" title = "我的博客" #指定主題 theme = "hyde" [params] #博客簡介 description = "這里是劉悅的個人博客" #博客主題顏色 themeColor = "theme-base-08"
可以看到我們制定了一個主題hyde,添加了Theme后的站點才有血有肉,豐富多彩。
更多的主題可以在這個上面下載,都是免費而開源的:https://themes.gohugo.io/
進入到站點內的themes目錄,輸入命令下載hyde主題,hugo有很多漂亮的主題可以選擇
git clone https://github.com/spf13/hyde.git
結構和樣式有了,我們還沒有內容。我們來創建站點的第一篇文章
輸入命令
hugo new one.md
hugo在content下創建one.md文件,我們編寫一些文件內容:
--- date: "2019-05-23" title: "第一篇文章" --- ### 你好啊 123123123 ``` print('hello world') ```
然后在命令行中輸入
hugo server
來熱啟動項目'
可以看到已經在1313端口起了一個hugo服務
訪問一下
至此,非常快速而簡單博客已經做好了,那么如何部署到線上呢?非常簡單輸入命令進行打包操作:
hugo --baseUrl="/"
hugo就會把你的站點生成純靜態頁面,然后打包到public文件夾
將public上傳到阿里雲服務器的root目錄下
修改nginx配置文件
vim /etc/nginx/conf.d/default.conf
監聽80端口,並且項目目錄指定/root/public
server { listen 80; server_name localhost; access_log /root/md_vue_access.log; error_log /root/md_vue_error.log; client_max_body_size 75M; location / { root /root/public; index index.html; } error_log /root/md_vue/error.log error; }
重啟nginx systemctl restart nginx.service 然后訪問一下
得益於hugo的快速而高效,三分鍾之內你就擁有了一個純靜態的個人博客