Hugo 部署方案
本篇文章用于记录 hugo 博客部署过程。
文章内容包括服务器配置,github 配置,以及网络配置,记录并保存 hugo 部署流程中用到的各种指令。
方案一 vercel 托管自动部署与集成 (推荐)
下面的方案二是我一开始的部署配置,使用方案二部署不到一个星期我租的的香港的 Liththouse 就被某信部给 ban 了。(心情复杂)真想把那个审核人员给 #¥@……%@# 一顿!不过也感谢你,帮我省了400大洋还让我找到了更优的部署方案,即 vercel 托管。
vercel 托管
vercel 真是一个良心平台,不仅完全免费托管,而且不限速!使用起来非常方便,不用配置任何乱七八糟的服务器环境,只需要一个 github 仓库里面放好你的 hugo 项目即可。具体步骤就不详细记录了,以下列出几个参考链接供大家学习使用。
几点使用 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对应目录即可。
参考
若文章有误可通过评论方式指出,非常感谢!