将 Hugo 博客从本地开发环境部署到线上服务器是一个简单直接的过程。本文将为您提供一个清晰的、分-步式的操作指引,主要涵盖使用 hugo 命令构建网站,并通过 Caddy Web 服务器进行托管和自动配置 HTTPS。
核心概念
Hugo 是一个静态网站生成器。这意味着它会提前将您所有的 Markdown 文章和主题模板文件编译成一个包含纯 HTML、CSS 和 JavaScript 文件的 public 目录。
我们的部署目标就是:
- 在服务器上生成这个
public目录。 - 配置一个 Web 服务器(如 Caddy 或 Nginx)来向全世界的访问者提供这个目录中的文件。
第一步:在服务器上构建网站
当您通过 SSH 登录服务器并更新了文章或主题后,您需要运行 hugo 命令来重新生成静态文件。
-
进入项目根目录:
1 2# 请确保路径正确 cd /path/to/your/hugo/project -
执行构建命令:
1hugo运行此命令后,Hugo 会清空并重新填充
public目录,里面包含了您网站的最新版本。您可以运行ls -l public来确认文件已更新。
第二步:配置 Web 服务器 (Caddy)
Caddy 是一个现代、易于配置的 Web 服务器,它能自动处理 HTTPS 证书,是托管静态网站的绝佳选择。
-
编辑 Caddyfile: 打开您的 Caddy 配置文件(通常位于
/etc/caddy/Caddyfile)。1sudo nano /etc/caddy/Caddyfile -
添加或修改您的网站配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15your-domain.com { # 设置网站根目录,指向 Hugo 生成的 public 文件夹 root * /path/to/your/hugo/project/public # 启用文件服务器,让 Caddy 提供静态文件 file_server # (可选但推荐) 开启 Gzip 压缩以优化加载速度 encode gzip } # (推荐) 将 www 子域名重定向到主域名 www.your-domain.com { redir https://your-domain.com{uri} }请务必:
- 将
your-domain.com替换为您的真实域名。 - 将
/path/to/your/hugo/project/public替换为public目录的绝对路径。
- 将
第三步:重载 Caddy 服务
每次修改 Caddyfile 后,您都需要让 Caddy 加载新的配置。使用 reload 命令可以实现平滑重载,无需中断服务。
|
|
第四步:验证与排错
现在,您的网站应该已经成功部署了。
- 访问网站:在浏览器中打开您的域名
https://your-domain.com。 - 强制刷新:如果看到的是旧内容或样式错乱,请务必强制刷新浏览器缓存(Windows/Linux:
Ctrl + F5,Mac:Cmd + Shift + R)。这是最常见的“更新未生效”的原因。 - 检查错误:如果网站无法访问,请使用
journalctl -u caddy --no-pager | tail -n 100查看 Caddy 的日志,排查配置文件错误。
恭喜您,您的 Hugo 博客现已成功部署!