hugo + nginx 搭建博客记录
作为一个萌新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 搭建博客记录的更多相关文章
- 用 Hugo 快速搭建博客
用 Hugo 搭建博客 Hugo 是一个用 Go 编写的静态站点生成器,生成速度很快 下面是具体操作: 1.安装 Hugo Windows 用户 使用 Chocolatey 或者 Scoop 快速安装 ...
- 使用Hugo框架搭建博客的过程 - 页面模板
前言 最初在制作友链界面时,没有学习Hugo框架,一头雾水.网上有关的教程甚少,只能去学一遍Hugo. 在学习Hugo的过程中,了解了列表模板,分类模板.开发了几个功能页面,如:留言板,友链,记忆分类 ...
- 使用Hugo框架搭建博客的过程 - 功能拓展
前言 本文介绍一些拓展功能,如文章页面功能增加二级菜单,相关文章推荐和赞赏.另外,使用脚本会大大简化写作后的上传流程. 文章页面功能 这部分功能的拓展主要是用前端的JS和CSS,如果对前端不了解,可以 ...
- 使用Hugo框架搭建博客的过程 - 主题配置
前言 博客部署完成后,恭喜你可以发表第一篇:Hello world!但是LoveIt这么好用的主题,不配置一番可惜了. 基本功能配置 主题配置最好参考已有的配置,比如LoveIt作者写的介绍,还有主题 ...
- 使用Hugo框架搭建博客的过程 - 前期准备
前言 这篇教程介绍了如何搭建这样效果的博客. 所需步骤 可以从这样的角度出发: 注册域名. 使用CDN加快网站访问速度. 网站内容需要部署在服务器或对象存储平台上. 重要的是放什么内容.博客需要选择框 ...
- Hugo hexo 搭建博客系列1:自己的服务器
hexo jekyll https://hexo.io/zh-cn/ http://theme-next.iissnan.com/getting-started.html Hexo 是高效的静态站点生 ...
- 使用Hugo框架搭建博客的过程 - 部署
前言 完成前期的准备工作后,在部署阶段需要配置服务器或对象存储服务. 对象存储和服务器对比 对象存储平台 国内有阿里云OSS.腾讯COS.又拍云.七牛云等.国外有Github Pages.Netlif ...
- Note | 用Hugo搭建博客并部署到GitHub Pages
目录 1. 本地搭建 1.1 安装Hugo 1.2 创建站点 1.3 新建页面和文章 1.4 使用主题 1.5 修改配置文件 1.6 预览 2. 部署 之前担心过现有博客平台(如博客园,CSDN)突然 ...
- 如何用hugo 搭建博客
1,Hugo 简介 搭建个人博客有很多开源的博客框架,我们要介绍的框架叫作Hugo.Hugo 是一个基于Go 语言的框架,可以快速方便的创建自己的博客. Hugo 支持Markdown 语法,我们可以 ...
随机推荐
- javascript数组排序算法之选择排序
前言 作为一名程序员数组的排序算法是必须要掌握的,今天来图解----选择排序 选择排序原理 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大) ...
- Jittor实现Conditional GAN
Jittor实现Conditional GAN Generative Adversarial Nets(GAN)提出了一种新的方法来训练生成模型.然而,GAN对于要生成的图片缺少控制.Conditio ...
- 中国人工智能AI框架自主研发
中国人工智能AI框架自主研发 中国AI界争相构建AI开源框架的背后,技术和业务层面的考量因素当然重要,但也不应忽视国家层面的政策支持.对于AI基础设施的建设,中国政府在<新一代人工智能发展规划& ...
- 一文教会你认识Vuex状态机
摘要:简单来说,Vuex就是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间数据的共享. 本文分享自华为云社区<Vuex状态机快速了解与应用>,原文作者:北极光之夜. 一. ...
- .NET平台系列22:.NET Core/.NET5/.NET6 对比 .NET Framework
系列目录 [已更新最新开发文章,点击查看详细] 在我的博客<.NET平台系列2 .NET Framework 框架详解>与 <.NET平台系列7 .NET Core 体系结构 ...
- Unicode编码转换, MD5加密,URL16进制加密解密
一.站长网址:http://www.msxindl.com/ 1.Unicode与中文互转 16进制Unicode编码转换.还原 :http://www.msxindl.com/tools/uni ...
- 学习响应式编程 Reactor (2) - 初识 reactor
Reactor Reactor 是用于 Java 的异步非阻塞响应式编程框架,同时具备背压控制的能力.它与 Java 8 函数式 Api 直接集成,比如 分为CompletableFuture.Str ...
- vagrant+java+springcloud+redis+zookeeper镜像下载(&制作详解)
文章很长,建议收藏起来,慢慢读! 备注:持续更新中..... 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 + 涨薪必备 疯 ...
- Linux集群环境下NTP服务器时间同步
NTP介绍 NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议.它的用途是把计算机的时钟同步到世界协调时UTC(Universal Time ...
- 使用Azure WebJob的一点心得
Azure WebApp Service 是非常适合中小型项目的云服务. 从我实际使用的感受来看, 有如下几个优点: 1 部署方便, 可以从VS一键发布 2 缩放方便, scale in / scal ...