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的快速而高效,三分钟之内你就拥有了一个纯静态的个人博客

利用基于Go Lang的Hugo配合nginx来打造属于自己的纯静态博客系统的更多相关文章

  1. 利用hexo来配合nginx来打造属于自己的纯静态博客系统

    什么是静态网站生成器?顾名思义,就是以最快的速度生成一个高可用的web页面,我们知道Django作为一款非常流行的框架被广泛应用,但是部署起来实在是太麻烦了,各种命令各种配置,动态页面必然要涉及数据库 ...

  2. 基于mkdocs-material搭建个人静态博客

    基于mkdocs-material搭建个人纯静态博客,没有php,没有mysql 如果你只是想安安静静的放一些技术文章,发布到个人站点或github-pages,mkdocs-material很适合你 ...

  3. 基于React服务器端渲染的博客系统

    系统目录及源码由此进入 目录 1. 开发前准备 1.1 技术选型1.2 整体设计1.3 构建开发 2. 技术点 2.1 react2.2 redux, react-router2.3 server-r ...

  4. 26种基于PHP的开源博客系统

    26种基于PHP的开源博客系统 来源:本站原创 PHP学习笔记 以下列举的PHP开源Blog系统中,除了我们熟知的WordPress之外,大多都没有使用过,其中一些已经被淘汰,或者有人还在使用.除了做 ...

  5. 基于开源博客系统(jpress)搭建网站

    基于开源博客系统(jpress)搭建网站 JPress 使用 Java8 开发,基于流行的JFinal和Jboot框架. 目前JPress已经内置的文章和页面其实是两个模块,可以移除和新增其他模块,因 ...

  6. [基于NetCore的简单博客系统]-登录

    0-项目背景 一个基于.NET CORE RAZOR PAGES的简单博客系统 技术栈全部采用微软官方实现方式,目的是熟悉新技术 项目地址:https://github.com/ganqiyin/BL ...

  7. 欢迎阅读daxnet的新博客:一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统

    2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为"希赛网" ...

  8. 一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统

    2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为“希赛网”)个人空间发布过一些 ...

  9. 【ASP.NET实战教程】基于ASP.NET技术下多用户博客系统全程实战开发(NNblog)

    岁末主推:牛牛老师主讲,多用户博客系统,基于ASP.NET技术,年后将带来移动业务平台项目项目目标: 打造个性品牌Blogo,定制多用户博客 为每一个博客用户提供个性化的 blogo解决方案,打造精品 ...

随机推荐

  1. Java继承的两道实验题目

    设计一个表示二维平面上点的类Point,包含有表示坐标位置的Protect类型的成员变量 获取和设置x和y值的public方法 package classwork_6; public class Po ...

  2. 如何使用Python 进行数据可视化

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 在进行数据分析的时候,经常需要将数据进行可视化,以方便我们对数据的认识和理解. 0,Matplotl ...

  3. mfc 位图本地存储 本地位图读取显示

    一.读取CImage //在绘图函数中直接使用参数pDC,无需定义 CDC* pDC = GetDC(): //读去位图路径,根据实际情况修改 CString loatImagePath = TEXT ...

  4. Alpha冲刺-第三次冲刺笔记

    Alpha冲刺-冲刺笔记 这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE2 这个作业要求在哪里 https://edu.cnblogs. ...

  5. 20200513_安装windows sql server 2012 _ ws功能 NetFx3时出错,错误代码:-2146498298

    这是没有安装.net Framework 3.5造成的 1. 下载个.net Framework 3.5, 放到任意目录下, 比如C: 2. 打开添加windows 功能 3. 直接下一步: 4. 勾 ...

  6. 第6.5节 exec函数:一个自说自话的强大Python动态编译器

    在Python动态执行的函数中,exec是用于执行一个字符串内包含的Python源码或其编译后对应的字节码. 一.    语法 1.    exec(Code, globals=None, local ...

  7. Oracle命令管理账户和权限

    方式一.登陆数据库SQL PLUS: 步骤:Oracle - OraDb10g_home1 =>应用程序开发=>SQL PLUS 用户名:system 密码:tiger/admin 退出数 ...

  8. [Windows] 在 Microsoft Docs 网站中挖掘 MVVM 的各种学习资源

    最近写了一些 MVVM 框架的文章,翻了一些 Microsoft Docs 的文档,顺便就对 MVVM 本身来了兴致,想看看更多当年相关的文档.在 MVVM 出现后十多年,我在不同的场合见到过多种 M ...

  9. CSP-S2020复赛游记

    [本文经过删改] 前一个月 没做什么 NOIP 的题,感觉这些题对我这个做黄题封顶的人不是很友好. 前一天 考了场模拟赛,全场最低分 89,感觉信心满满. 退役那天 到了 XJ,发现没人可以面基,想着 ...

  10. 题解-MtOI2019 幽灵乐团

    题面 MtOI2019 幽灵乐团 给定 \(p\),\(Cnt\) 组测试数据,每次给 \(a,b,c\),求 \[\prod_{i=1}^a\prod_{j=1}^b\prod_{k=1}^c\le ...