Hugo 博客部署操作指引

将 Hugo 博客从本地开发环境部署到线上服务器是一个简单直接的过程。本文将为您提供一个清晰的、分-步式的操作指引,主要涵盖使用 hugo 命令构建网站,并通过 Caddy Web 服务器进行托管和自动配置 HTTPS。

核心概念

Hugo 是一个静态网站生成器。这意味着它会提前将您所有的 Markdown 文章和主题模板文件编译成一个包含纯 HTML、CSS 和 JavaScript 文件的 public 目录。

我们的部署目标就是:

  1. 在服务器上生成这个 public 目录。
  2. 配置一个 Web 服务器(如 Caddy 或 Nginx)来向全世界的访问者提供这个目录中的文件。

第一步:在服务器上构建网站

当您通过 SSH 登录服务器并更新了文章或主题后,您需要运行 hugo 命令来重新生成静态文件。

  1. 进入项目根目录

    1
    2
    
    # 请确保路径正确
    cd /path/to/your/hugo/project
    
  2. 执行构建命令

    1
    
    hugo
    

    运行此命令后,Hugo 会清空并重新填充 public 目录,里面包含了您网站的最新版本。您可以运行 ls -l public 来确认文件已更新。

第二步:配置 Web 服务器 (Caddy)

Caddy 是一个现代、易于配置的 Web 服务器,它能自动处理 HTTPS 证书,是托管静态网站的绝佳选择。

  1. 编辑 Caddyfile: 打开您的 Caddy 配置文件(通常位于 /etc/caddy/Caddyfile)。

    1
    
    sudo nano /etc/caddy/Caddyfile
    
  2. 添加或修改您的网站配置

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    
    your-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 命令可以实现平滑重载,无需中断服务。

1
sudo caddy reload

第四步:验证与排错

现在,您的网站应该已经成功部署了。

  1. 访问网站:在浏览器中打开您的域名 https://your-domain.com
  2. 强制刷新:如果看到的是旧内容或样式错乱,请务必强制刷新浏览器缓存(Windows/Linux: Ctrl + F5,Mac: Cmd + Shift + R)。这是最常见的“更新未生效”的原因。
  3. 检查错误:如果网站无法访问,请使用 journalctl -u caddy --no-pager | tail -n 100 查看 Caddy 的日志,排查配置文件错误。

恭喜您,您的 Hugo 博客现已成功部署!

返回上一页 取消操作

浏览更多内容