在 KeyCDN 上托管
KeyCDN 提供了多种功能,可帮助在全球范围内加速和保护您的 Hugo 站点,包括 Brotli 压缩、Let's Encrypt 支持、源站保护等。
假设
- 您已经配置了一个 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 git@gitlab.com:youruser/ci-example.git
git push -u origin master
您可以在 GitLab 项目的“管道”下查看进度和 CI 作业输出。
在验证您的 CI 作业运行无误后,首先检查您的 GitLab 页面是否显示在 https://youruser.gitlab.io/reponame/
下(由于所有链接都指向您的 KeyCDN 区域,因此它可能看起来已损坏,具体取决于您的浏览器设置 - 不用担心),然后前往您定义的任何区域别名/区域 URL。
要了解有关使用 KeyCDN 的 Hugo 托管选项的更多信息,请查看完整的使用 KeyCDN 集成的 Hugo 托管指南。