作为一个萌新Gopher,经常逛网站能看到那种极简的博客,引入眼帘的不是花里胡哨的图片和样式,而是黑白搭配,简简单单的文章标题,这种风格很吸引我。正好看到煎鱼佬也在用这种风格的博客,于是卸载了我的wordpress开始抄袭,o(* ̄︶ ̄*)o

Hugo简介

Hugo是由Go语言实现的静态网站生成器。简单、易用、高效、易扩展、快速部署。

准备和环境

我直接在我的阿里云服务器上使用hugo了,环境如下:

  • 操作系统:公共镜像CentOS 8.1 64位
  • Nginx版本:Nginx 1.16.1
  • 域名:kingram.top
  • 阿里云服务器:8.136.204.132

Hugo使用

安装Hugo

由于我用的是Linux系统,直接wget下载安装就好了,其他系统参考Hugo中文文档其他版本参考Hugo Releases

cd ~
wget https://github.com/gohugoio/hugo/releases/download/v0.85.0/hugo_0.85.0_Linux-64bit.tar.gz
tar -zxvf hugo_0.85.0_Linux-64bit.tar.gz
mv hugo /usr/bin/

检查是否安装成功

hugo version

输出

hugo v0.85.0-724D5DB5 linux/amd64 BuildDate=2021-07-05T10:46:28Z VendorInfo=gohugoio

就说明安装成功啦

创建blog站点

在当前目录执行命令创建blog站点

hugo new site myblog

这个myblog就是项目的名字了,创建的目录如下

├── archetypes
│ └── default.md
├── config.toml # 博客站点的配置文件
├── content # 博客文章所在目录
├── data
├── layouts # 网站布局
├── static # 一些静态内容
└── themes # 博客主题

我们的博客文章就放在content目录下的posts中,只需要按照Markdown格式编写,hugo就会读取到文章然后展示在博客中。

安装主题

不用主题是无法使用hugo的,我这里用的是hermit主题,开发者是Track3,然后我魔改了下,抄袭了煎鱼佬的样式,改为了黑白结合的。

安装依次执行以下命令:

cd myblog
# clone到
git clone https://github.com/Track3/hermit.git ./themes/hermit

使用主题

hermit主题中exampleSite目录下的内容拷贝到当前目录myblog

cp themes/hermit/exampleSite/* ./ -r

可以通过修改config.toml文件来更改配置

贴上我的config.toml文件配置,是抄了煎鱼佬(#.#)

baseURL = "http://kingram.top"
languageCode = "zh-hans"
defaultContentLanguage = "en"
title = "Kingram"
theme = "hermit"
# enableGitInfo = true
pygmentsCodefences = true
pygmentsUseClasses = true
# hasCJKLanguage = true # If Chinese/Japanese/Korean is your main content language, enable this to make wordCount works right.
rssLimit = 10 # Maximum number of items in the RSS feed.
copyright = "This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License." # This message is only used by the RSS template.
enableEmoji = true # Shorthand emojis in content files - https://gohugo.io/functions/emojify/
googleAnalytics = "UA-166045776-1"
# disqusShortname = "yourdiscussshortname" [author]
name = "Kingram" [blackfriday]
# hrefTargetBlank = true
# noreferrerLinks = true
# nofollowLinks = true [taxonomies]
tag = "tags"
# Categories are disabled by default. [params]
since = "2018"
toc = true customCSS = ["css/a.css"] dateform = "Jan 2, 2006"
dateformShort = "Jan 2"
dateformNum = "2006-01-02"
dateformNumTime = "2006-01-02 15:04 -0700" # Metadata mostly used in document's head
# description = ""
# images = [""] # homeSubtitle = "Coding, Thinking, Life"
footerCopyright = ' · <a href="http://beian.miit.gov.cn/">苏ICP备2021012652号</a>'
# bgImg = "" # Homepage background-image URL # Prefix of link to the git commit detail page. GitInfo must be enabled.
# gitUrl = "https://github.com/username/repository/commit/" # Toggling this option needs to rebuild SCSS, requires Hugo extended version
justifyContent = false # Set "text-align: justify" to `.content`. relatedPosts = false # Add a related content section to all single posts page code_copy_button = true # Turn on/off the code-copy-button for code-fields # Add custom css
# customCSS = ["css/foo.css", "css/bar.css"] # Social Icons
# Check https://github.com/Track3/hermit#social-icons for more info. [[params.social]]
name = "github"
url = "https://github.com/k1ngram4" [menu] [[menu.main]]
name = "文章"
url = "posts/"
weight = 10 [[menu.main]]
name = "标签"
url = "tags/"
weight = 10 [[menu.main]]
name = "关于"
url = "about/"
weight = 20

设置好配置文件后在myblog目录下执行hugo命令即可生成public文件夹,这个文件夹就是我们站点的根目录文件夹,后面nginx中部署时指定的根目录也是这个。如果想使用github pages只要将这个目录放在github托管,每次改完提交即可。

hugo

使用Nginx部署

安装Nginx

dnf -y install http://nginx.org/packages/centos/8/x86_64/RPMS/nginx-1.16.1-1.el8.ngx.x86_64.rpm

执行命令查看nginx版本

nginx -v

配置Nginx

修改nginx配置文件的用户,否则后面会出现权限问题

vi /etc/nginx/nginx.conf

按i进入编辑模式

修改user nginx;user root;

按下Esc键,并输入:wq保存退出文件。

修改配置文件

cd /etc/nginx/conf.d
vi default.conf

按i进入编辑模式

location大括号内,修改以下内容。

location / {
#将该路径替换为您的网站根目录。
root /root/myblog/public/;
#添加默认首页信息
index index.html index.htm;
}

按下Esc键,并输入:wq保存退出文件。

启动Nginx

运行以下命令启动Nginx服务。

systemctl start nginx

运行以下命令设置Nginx服务开机自启动。

systemctl enable nginx

这样服务端Nginx就配置完成了,要想通过kingram.top访问,还需要关闭防火墙(或者配置端口)、配置dns解析、配置阿里云端口安全组(80端口)等操作,我是直接关了防火墙

关闭防火墙

永久关闭防火墙:

systemctl disable firewalld

运行systemctl status firewalld命令查看当前防火墙的状态

● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)

dns解析和配置阿里云安全组可以通过阿里云文档配置,这样就可以使用域名直接访问我们的博客了。(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ

后面准备搭个自动部署的脚本,等搞完了再写个文章总结下。┏(^0^)┛

hugo + nginx 搭建博客记录的更多相关文章

  1. 用 Hugo 快速搭建博客

    用 Hugo 搭建博客 Hugo 是一个用 Go 编写的静态站点生成器,生成速度很快 下面是具体操作: 1.安装 Hugo Windows 用户 使用 Chocolatey 或者 Scoop 快速安装 ...

  2. 使用Hugo框架搭建博客的过程 - 页面模板

    前言 最初在制作友链界面时,没有学习Hugo框架,一头雾水.网上有关的教程甚少,只能去学一遍Hugo. 在学习Hugo的过程中,了解了列表模板,分类模板.开发了几个功能页面,如:留言板,友链,记忆分类 ...

  3. 使用Hugo框架搭建博客的过程 - 功能拓展

    前言 本文介绍一些拓展功能,如文章页面功能增加二级菜单,相关文章推荐和赞赏.另外,使用脚本会大大简化写作后的上传流程. 文章页面功能 这部分功能的拓展主要是用前端的JS和CSS,如果对前端不了解,可以 ...

  4. 使用Hugo框架搭建博客的过程 - 主题配置

    前言 博客部署完成后,恭喜你可以发表第一篇:Hello world!但是LoveIt这么好用的主题,不配置一番可惜了. 基本功能配置 主题配置最好参考已有的配置,比如LoveIt作者写的介绍,还有主题 ...

  5. 使用Hugo框架搭建博客的过程 - 前期准备

    前言 这篇教程介绍了如何搭建这样效果的博客. 所需步骤 可以从这样的角度出发: 注册域名. 使用CDN加快网站访问速度. 网站内容需要部署在服务器或对象存储平台上. 重要的是放什么内容.博客需要选择框 ...

  6. Hugo hexo 搭建博客系列1:自己的服务器

    hexo jekyll https://hexo.io/zh-cn/ http://theme-next.iissnan.com/getting-started.html Hexo 是高效的静态站点生 ...

  7. 使用Hugo框架搭建博客的过程 - 部署

    前言 完成前期的准备工作后,在部署阶段需要配置服务器或对象存储服务. 对象存储和服务器对比 对象存储平台 国内有阿里云OSS.腾讯COS.又拍云.七牛云等.国外有Github Pages.Netlif ...

  8. Note | 用Hugo搭建博客并部署到GitHub Pages

    目录 1. 本地搭建 1.1 安装Hugo 1.2 创建站点 1.3 新建页面和文章 1.4 使用主题 1.5 修改配置文件 1.6 预览 2. 部署 之前担心过现有博客平台(如博客园,CSDN)突然 ...

  9. 如何用hugo 搭建博客

    1,Hugo 简介 搭建个人博客有很多开源的博客框架,我们要介绍的框架叫作Hugo.Hugo 是一个基于Go 语言的框架,可以快速方便的创建自己的博客. Hugo 支持Markdown 语法,我们可以 ...

随机推荐

  1. JMicro微服务Hello World

    概述 JMicro是本人开发的基于Java实现的微服务框架,前两天发布0.0.3正式版本,并已发布到maven中央仓库. 项目源码github:https://github.com/mynewworl ...

  2. 浅析PriorityBlockingQueue优先级队列原理

    介绍 当你看本文时,需要具备以下知识点 二叉树.完全二叉树.二叉堆.二叉树的表示方法 如果上述内容不懂也没关系可以先看概念. PriorityBlockingQueue是一个无界的基于数组的优先级阻塞 ...

  3. Could not get JDBC Connection排查

    最近在维护的一个比较旧的项目,发现总是隔一段时间JDBC就报错: Could not get JDBC Connection; nested exception is org.apache.commo ...

  4. supervisor 使 celery后台运行

    1.安装 supervisor pip install supervisor  2.创建supervisor配置文件,命令如下: 进入项目文件 echo_supervisord_conf > s ...

  5. NVIDIA DGX SUPERPOD 企业解决方案

    NVIDIA DGX SUPERPOD 企业解决方案 实现大规模 AI 创新的捷径 NVIDIA DGX SuperPOD 企业解决方案是业界首个支持任何组织大规模实施 AI 的基础架构解决方案.这一 ...

  6. GPU编程和流式多处理器(四)

    GPU编程和流式多处理器(四) 3.2. 单精度(32位) 单精度浮点支持是GPU计算的主力军.GPU已经过优化,可以在此数据类型上原生提供高性能,不仅适用于核心标准IEEE操作(例如加法和乘法),还 ...

  7. STM32使用DMA发送串口数据

    1.概述 上一篇文章<STM32使用DMA接收串口数据>讲解了如何使用DMA接收数据,使用DMA外设和串口外设,使用的中断是串口空闲中断.本篇文章主要讲解使用DMA发送数据,不会讲解基础的 ...

  8. 「题解」agc031_c Differ by 1 Bit

    本文将同步发布于: 洛谷博客: csdn: 博客园: 简书: 题目 题目链接:洛谷 AT4693.AtCoder agc031_c. 题意概述 给定三个数 \(n,a,b\),求一个 \(0\sim ...

  9. Kafka源码分析(三) - Server端 - 消息存储

    系列文章目录 https://zhuanlan.zhihu.com/p/367683572 目录 系列文章目录 一. 业务模型 1.1 概念梳理 1.2 文件分析 1.2.1 数据目录 1.2.2 . ...

  10. 【逆向&编程实战】Metasploit安卓载荷运行流程分析_复现meterpreter模块接管shell

    /QQ:3496925334 作者:MG193.7 CNBLOG博客号:ALDYS4 未经许可,禁止转载/ 关于metasploit的安卓模块,前几次的博客我已经写了相应的分析和工具 [Android ...