前言
最近终于是从工作中解放出一段时间来收拾一下博客了。回头一看上一篇章博客,发现自己对博客发布步骤几乎等于没写,想来应该是当时为了赶时间而一笔带过。于是今天就将这一篇文章写完,也算是凑齐了步骤。
将博客运转在服务器上
在上一篇文章《博客迁移记录》中已经很明确的说明了,hugo本质上就是一个静态页面生成器,因此我们需要寻找类似github page或者自建nginx这种静态页面托管平台。
github page
github page是github的一项免费服务,可以直接对仓库进行静态页面部署,步骤也不算复杂。
建立仓库
前往Git安装一个git工具,并到GitHub上注册一个账号。
点击右上角的+符号,点击New repository来新建一个仓库,仓库名称是填写<用户名>.github.io,例如:我的github名称叫cyilin36,那么我就需要填写cyilin36.github.io。如果填写了其他的仓库名称,那么后续博客的地址会变成<用户名>.github.io/仓库名称,因此主要博客请务必按照求填写。
Choose visibility项请务必选择public,不然是没办法部署page的。
确认后会看到网页出现类似这样的命令后,就可以回到电脑资源管理器继续后续操作。此时github网页不要关闭,后续需要复制这些命令。

上传文件
回到hugo项目的主目录(blog文件夹)下,打开hugo.toml文件,将其中的baseURL写入自己的博客地址:baseURL = https://<用户名>.github.io,然后在资源管理器地址栏输入cmd打开终端,输入指令hugo重新生一份正在要部署的静态网页文件。
输入cd public来到public文件夹 ,再将刚刚github网页上的命令一条一条的粘贴到终端中,一条一个回车确认。第二条git add README.md需要改成git add .,其余的全部照抄即可。
上传完成后,回到github刷新仓库,就可以发现已经变成一般项目的样子了。点击setting→pages,在Branch选择主分支main,然后点击save进行保存并部署。

等待一会,刷新该页面,如果出现类似这种卡片便证明成功。可以点击继续确认一下。
更新网页
后续更新博客也需要对静态网站文件进行推送更新。
git add .
git commit -m "更新了一篇博客"
git push -u origin main
nginx
如果是想部署在自己的服务器上,那最方便的便是自建一个nginx。我们只需要安装、上传资源并写好配置就可以了。
安装nginx
为了方便迁移,我选择了docker安装nginx,并写成了docker-compose.yml。
mkdir nginx && cd nginx
nano docker-compose.yml
写入以下内容并保存。
services:
nginx:
image: nginx:stable-perl
container_name: hugo-nginx
ports:
- "80:80" # 将主机的 80 端口映射到容器的 80 端口
volumes:
# 将你的 public 文件夹映射到容器的 Nginx 网站根目录
- ./public:/usr/share/nginx/html
- ./nginx.conf:/etc/nginx/nginx.conf:ro # 映射自定义配置文件
restart: always
配置nginx
还是跟github page部署的流程一样,首先需要编辑hugo.toml的baseURL参数,写成自己的域名。
然后到blog文件夹下,将public文件夹上传到nginx目录(docker-compose.yml所在目录)下。回到本地电脑的资源管理器地址栏输入cmd,再输入以下命令。
scp -r public <服务器用户名>@<服务器ip>:<docker-compose.yml文件所在路径>
输入该用户的密码即可上传。
回到服务器操作,来到nginx目录下,写nginx的配置文件nano nginx.conf。
user root;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
# Hugo 网站配置
server {
listen 80;
server_name <你的域名>;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
}
随后启动docker便是大功告成.
docker compose up -d
更新网页
更新网页需要删除务器nginx/public下的所有文件,并将本地电脑的public文件还再度上传即可。