HOSTING AND DEPLOYMENT

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。

KeyCDN 拉取區域創建頁面截圖

雖然原點位置尚未存在,您仍需在稍後上傳至 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 密鑰應該類似於:

設置區域 ID 秘密變數截圖

而您的 API 密鑰秘密變數應該類似於:

設置 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 集成指南