原文轉載自「劉悅的技術博客」https://v3u.cn/a_id_81
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的快速而高效,三分鐘之內你就擁有了一個純靜態的個人博客
原文轉載自「劉悅的技術博客」 https://v3u.cn/a_id_81