在之前的文章建站过程中有提到用 github + hexo 来建站,但是因为百度搜索爬虫不能直接爬 github pages,本次采用 gitlab 建立镜像网站,这样就可以让百度能够搜索的到。

# DNS

首先跟之前一样 github 的 dns 记录一样,添加两条记录:域名网址和 www 域名网址,然后类型 CNAME,线路类型百度,记录值填对应的 gitlab pages 的网址。这样百度爬虫会被导向 gitlab 上面。

# gitlab 设置

来源:https://www.jianshu.com/p/c42835a5a64f

在 Gitlab 创建一个 repository,名字为 xxx.gitlab.io,xxx 就是你的 Gitlab 用户名。

git init
git remote add origin git@gitlab.com:xxx/xxx.gitlab.io.git

注意:如果 themes 下的主题是 git clone 下来,那么会自带.git 文件夹,推送到 gitlab 上时不会推送源文件,在 git add 前务必将使用 themes 的.git 删掉。如果不小心 add 上了,请执行一下命令清理缓存再重新 add 文件:

git rm -r --cached .

然后再博客根目录下创建 .gitlab-ci.yml , 内容参考:https://gitlab.com/pages/hexo/blob/master/.gitlab-ci.yml

image: node: #最新版本
cache:
  paths:
    - node_modules/
before_script:
  - npm install hexo-cli -g
  - test -e package.json && npm install
  - export HEXO_ALGOLIA_INDEXING_KEY=xxx #xxx = 你的 algolia admin key
  - hexo algolia #如果装了 algolia 的话
  - hexo generate
pages:
  script:
    - hexo generate
  artifacts:
    paths:
      - public
  rules:
    - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH

git 推送到远程仓库之后,GitLab CI 会自动开始运行,构建成功以后稍等几分钟,打开 https://xxx.gitlab.io 应该就能看到自己的博客了。

如果想隐藏博客源码,又不想影响博客的正常访问,可以在仓库的 Settings -> General -> Visibility, project features, permissions 里面将仓库权限 Project visibility 设置为 private,然后把下面的 Pages 选项改为 Everyone

# Gitlab pages 的个人域名 https 搭配 dnspod 签发的证书

需要在 pages 的选项下,建自已的 Pages Domain,然后再 Certificate 选项填写对应的密文:

  • Certificate (PEM) : 放入 xxx_bundle.pem 中的内容,所有都要填写。因为是通过中级 CA 机构颁发的证书,拿到的证书文件包含多份证书。

  • Key (PEM) : 放入 xxx.key 中的内容。

然后就可以打开 https 对应的链接了

# 附言:bash 脚本

@echo on
cmd /c hexo clean
cmd /c hexo g
cmd /c set HEXO_ALGOLIA_INDEXING_KEY=xxx #xxx = 你的 algolia admin key
cmd /c hexo algolia
cmd /c hexo d
cmd /c git add .
cmd /c git commit -m "upload file %DATE%_%TIME%"
cmd /c git push
pause
Edited on Views times