托管在 KeyCDN 上
KeyCDN 提供多种功能来帮助您在全球范围内加速和保护您的 Hugo 网站,包括 Brotli 压缩、Let’s Encrypt 支持、Origin Shield 等。
假设
- 您已经配置了一个 Hugo 页面
- 您拥有一个 GitLab 帐户
- 您拥有一个 KeyCDN 帐户
创建 KeyCDN 拉取区域
第一步是登录您的 KeyCDN 帐户并创建一个新的区域。您可以随意命名,并选择 拉取区域 选项。至于源 URL,您的站点将在 GitLab Pages 上运行,URL 为 https://youruser.gitlab.io/reponame/
。将其用作源 URL。
虽然源位置尚不存在,但您需要在将上传到 GitLab 项目的 .gitlab-ci.yml
文件中使用新的区域 URL 地址(或 区域别名 )。
确保在下面的示例中将您的区域 URL 或区域别名用作 BASEURL
变量。这将是用户可见的网站地址。
配置您的 .gitlab-ci.yml 文件
您的 .gitlab-ci.yml
文件应类似于下面的示例。请务必修改任何特定于您设置的变量。
image: alpine:latest
variables:
BASEURL: "https://cipull-7bb7.kxcdn.com/"
HUGO_VERSION: "0.26"
HUGO_CHECKSUM: "67e4ba5ec2a02c8164b6846e30a17cc765b0165a5b183d5e480149baf54e1a50"
KEYCDN_ZONE_ID: "75544"
before_script:
- apk update
- apk add curl
pages:
stage: deploy
script:
- apk add git
- git submodule update --init
- curl -sSL https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_Linux-64bit.tar.gz -o /tmp/hugo.tar.gz
- echo "${HUGO_CHECKSUM} /tmp/hugo.tar.gz" | sha256sum -c
- tar xf /tmp/hugo.tar.gz hugo -C /tmp/ && cp /tmp/hugo /usr/bin
- hugo --baseURL ${BASEURL}
- curl "https://api.keycdn.com/zones/purge/${KEYCDN_ZONE_ID}.json" -u "${KEYCDN_API_KEY}:"
artifacts:
paths:
- public
only:
- master
使用此集成方法,您必须将区域 ID 和您的 KeyCDN API 密钥指定为秘密变量。为此,请导航到 GitLab 中的左上角菜单栏并选择项目。然后,选择您的项目并单击“设置”页面。最后,从子菜单中选择“管道”,然后向下滚动到“秘密变量”部分。
区域 ID 的秘密变量应类似于:
而 API 密钥的秘密变量应类似于:
区域 ID 和 API 密钥用于清除您的区域——这并非严格需要,否则 CDN 可能会在相当长一段时间内提供您资源的旧版本。
将您的更改推送到 GitLab
现在是时候将新创建的存储库推送到 GitLab 了:
git remote add origin [email protected]:youruser/ci-example.git
git push -u origin master
您可以在 GitLab 项目的“管道”下查看进度和 CI 作业输出。
验证您的 CI 作业运行没有问题后,首先检查您的 GitLab 页面是否显示在 https://youruser.gitlab.io/reponame/
下(根据您的浏览器设置,它可能看起来已损坏,因为所有链接都指向您的 KeyCDN 区域——不用担心),然后前往您定义的任何区域别名/区域 URL。
要了解有关使用 KeyCDN 的 Hugo 托管选项的更多信息,请查看完整的 使用 KeyCDN 集成的 Hugo 托管指南 。