Hugo 部署方案
本篇文章用于记录 hugo 博客部署过程。
文章内容包括服务器配置,github 配置,以及网络配置,记录并保存 hugo 部署流程中用到的各种指令。
方案一 vercel 托管自动部署与集成 (推荐)
下面的方案二是我一开始的部署配置,使用方案二部署不到一个星期我租的的香港的 Liththouse 就被某信部给 ban 了。(心情复杂)真想把那个审核人员给 #¥@……%@# 一顿!不过也感谢你,帮我省了 400 大洋还让我找到了更优的部署方案,即 vercel 托管。
vercel 托管
vercel 真是一个良心平台,不仅完全免费托管,而且不限速!使用起来非常方便,不用配置任何乱七八糟的服务器环境,只需要一个 github 仓库里面放好你的 hugo 项目即可。具体步骤就不详细记录了,以下列出几个参考链接供大家学习使用。
知乎:vercel 是什么神仙网站?
Hugo | 用 Vercel 完成 blog 自动化部署
Hugo 部署到 Vercel
几点使用 Tips
- vercel 创建项目时不用纠结 hugo extended 版本
- 注意 git 上如果用 submodule 配置的主题同样需要上传到 github
- 你每次
git push
到仓库后 vercel 就会自动帮你编译更新(炒鸡方便有没有) - github 仓库可以设为私有
- 你的项目文件不要太大,最好将图片等资源用 CDN 维护
存储桶 + DCDN 使用
本站点目前使用阿里云的存储桶和海外 CDN 服务。
大致流程:
- 需要一个海外的 bucket
- 境外 DCDN 服务(不可包含境内,境内 CDN 需要备案)
- 可自定义三级域名用 CNAME 记录解析到 DCDN
- DCDN 直接回源 OSS
- 添加 SSL 证书,开启 HTTPS
方案二 服务器部署
配置腾讯云 Lighthouse
一开始服务器的选择还是纠结很久,关注了多家服务器提供商的几台相似配置的服务器。
有国外 vultr 和 bandwagon 的 vps 和国内的阿里云 ECS,腾讯云 CVM。经过几番比较最终选择了腾讯云的海外轻量应用服务器,使用体验确实香。
Ubuntu 配置
由于 Ubuntu 系统权限限制严格,腾讯云的 lighthouse 系统初始不会分配 root 用户而是 ubuntu 用户。
因此需要手动修改配置文件开启 root 用户连接服务器。登入默认分配的系统用户后设置 root 密码后配置 ssh 连接修改相关参数后重启 ssh 服务,这样就可以直接使用 root 用户登入服务器了。
|
|
创建一个自己的用户分配 sudo 权限之后安装一下 tmux,然后将保存在 cos 的几个祖传配置传过来。
|
|
安装与配置 Nginx
Nginx 安装
具体安装步骤请查看文档
|
|
之后可以访问一下服务器 IP 地址的 80 端口测试 Nginx 是否正常运行。
Nginx 配置
Nginx 的配置文件位于 /etc/nginx/nginx.conf
Nginx 服务器配置文件被储存在 /etc/nginx/sites-available
目录下,该目录的配置文件都会被被启用。
Nginx 常用指令
|
|
修改配置文件
按道理来说把站点配置信息放在 sites-available
或 conf.d
目录下面会更规范一些。
由于之前对 nginx 不是很了解,就直接在 nginx.conf
里修改了。
实际在 nginx.conf
下的配置的如下内容:
|
|
与在./conf.d
和./sites-enabled/
如下写法是一样的配置效果。
|
|
我的 Nginx 配置如下
vim 编辑 nginx.conf 文件。
秉着我的服务器我做主原则,直接给 nginx 配置 root 权限👻。实际菜鸡不懂 linux 权限使用规则,root 就完事了。
http 连接 301 重定向到 https 上,证书文件直接放在 nginx.conf 同一目录下即可,也可以创建一个文件夹单独存放,路径信息是相对于 conf 文件的作如下修改即可 filename/xxx. icu_bundle.crt
。
|
|
修改完成后需要重新加载配置文件,重启 nginx 服务,指令如下:
|
|
Hugo 文件同步方案
看到一些博主用 Github Action + 同步软件实现自动部署流程。我的开发环境是 windows,因此直接使用 FTP 将站点在本地编译后同步到 VPS 对应目录即可。
参考
若文章有误可通过评论方式指出,非常感谢!