在KeyCDN上托管
KeyCDN提供了多种功能,可以帮助您全球加快和保护Hugo网站,包括Brotli压缩,Let’s Encrypt支持,Origin Shield等。
假设条件
- 您已经配置了Hugo页面
- 您拥有一个GitLab账户
- 您拥有一个KeyCDN账户
创建一个KeyCDN拉取区域(Pull Zone)
第一步是登录到您的KeyCDN账户并创建一个新的区域(zone)。可以随意命名此区域,并选择拉取区域选项。至于源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
使用这种集成方法,您需要在GitLab中将区域ID和您的KeyCDN API密钥指定为秘密变量。要做到这一点,请导航到GitLab左上角的菜单栏,选择项目,然后点击“Settings”页面。最后,选择子菜单中的“Pipelines”,并向下滚动到“Secret Variable”部分。
区域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/
(根据浏览器设置的不同,它可能看起来破碎)。 然后,转到您定义的任何区域别名/区域URL。
要了解有关使用KeyCDN进行Hugo托管的更多选项,请参阅完整的Hugo与KeyCDN集成指南。