Host on KeyCDN
KeyCDN 提供多種功能,幫助您全球加速和保護您的 Hugo 網站,包括 Brotli 壓縮、Let’s Encrypt 支援、原點保護等。
假設
- 您已經配置好 Hugo 網頁
- 您擁有一個 GitLab 帳號
- 您擁有一個 KeyCDN 帳號
創建 KeyCDN 拉取區域
第一步是登錄您的 KeyCDN 帳號並創建一個新的區域。為此選擇您喜歡的名稱並選擇 拉取區域 方案。作為原點 URL,您的網站將在 GitLab Pages 上運行,URL 為 https://youruser.gitlab.io/reponame/
。使用此 URL 作為原點 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 項目的設置頁面,選擇您的項目並進入設置頁面,然後選擇 Pipelines 並滾動到秘密變數部分。
您的區域 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 作業輸出,位於“Pipelines”下。
在驗證您的 CI 作業無誤後,首先檢查您的 GitLab 頁面是否顯示在 https://youruser.gitlab.io/reponame/
(根據您的瀏覽器設置,它可能看起來有些損壞,因為所有鏈接都指向您的 KeyCDN 區域—不必擔心),然後前往您定義的區域別名或區域 URL。
要了解更多關於 Hugo 使用 KeyCDN 託管的選項,請查看完整的 Hugo 與 KeyCDN 集成指南。