评论

一路搭建博客的心路历程

一路搭建博客的心路历程,终结贴,再也不玩轮子了。发散个思维,利用GitHub Actions + 小程序命令行工具不知道有没有可玩性

博客

  • 写作的过程其实就是思考的字面化,梳理知识体系的同时反思知识的内化程度,分清楚哪些是“知道了”,哪些是“掌握了”。
  • 通过博客的形式分享是学习的一种技巧,内化知识的同时也从分享中得到快乐。
  • 用写作来记录成长的过程,保持这种习惯能让你听到意志力成长的声音。

怎么搭建自己的博客

  • 个人主页注册。指的是在博客网站、论坛或社区上注册个人主页。例如知乎、掘金、csdn、简书
  • 静态网站生成。通常是由jekyll、hugo或hexo等技术生成静态网站,然后通过git上传到Github Pages、Coding Pages等平台
  • 内容管理系统。带有后台管理的博客系统,需要服务器、数据库以及域名等,然后安装成熟的WordPress、ghost等等

个人主页注册

注册形式的缺点是平台风格单一、自定义基本不存在、广告困扰、优势是没有技术门槛,注册即可、拥有成熟的平台支持,利于推广。

静态网站

涉及内容 Markdown / Linux命令 / git / Github Pages / 域名解析

静态网站的缺点是每次发布要重新编译、容易入坑、各家平台换来换去会中毒、解析速度不是很完美、自己搞定站长收录等等麻烦,优势是快速搭建、自定义程度高、扩展性强、主题丰富,高颜值、更新速度快。

比较流行的有jekyll、hugo以及hexo等。一般将网站搭在Github Pages或Coding Pages上。

内容管理系统

涉及内容 服务器 / 域名解析 / 数据库 / Linux命令 / ftp

管理系统的缺点是臃肿、扩展性差、需要自己购买服务器、一定的时间成本、一定的web知识支撑、当初搞wordpress真的太难了。。。优势是成熟的后台管理、功能丰富、内置搜索、评论等常用功能,各种插件。

痛并快乐着

以上几种都尝试过了,成宿成宿的折腾,当然收获也是并存的,丰富了自己的知识面。最痛心的是两年并没有产出多少内容,白折腾。近期瞄上了 docsify 简洁、舒服看对眼了,在搞最后一次。

基础搭建

docsify + coding + coding pages.
基础搭建参照文档全局安装docsify、创建仓库、上传coding,自动部署至coding pages。一气呵成。码云自定义域名收费,github自动部署要配置、访问速度比不上国内服务商,coding pages 还支持收录,只需要 git push 自动部署,不要太舒服。

为什么不用coding pages

这几天说要和朋友增加友链,加上之前在手机看自己博客感觉打开速度有点儿慢,索性在折腾一次吧。

ping 一下coding page速度延迟确实有点高。

准备工作

docsify + coding pages + CDN

自己有一个腾讯云服务器、cos有免费额度、之前配置过CDN已经很熟悉操作、coding自动部署确实舒服,所以我选择了上述方案。

一顿操作后在ping 一下,嗯,还可以。

踩到一个坑 (子域名负载均衡数量超出限制)

在一顿百度后的得到的答案全部都xxxx,最后求助腾讯云机器人客服。。

嗯,这解释就很明白了,因为自定义域名要添加一条CNAME记录去指向coding pages,还需要在添加添加一条CNAME记录去指向CDN。不能相同主机值、相同线路类型下默认只能添加一条CNAME记录 那就好办了。

升级工作

cos + cos 静态网站 + github + CDN + Serverless + github Actions

不知道为什么,感觉两条CNAME别扭,怪怪的,不妥。一阵搜索后制定了新的方案。

本地编写 --> git push github --> github update cos --> cos + CDN展示 --> cos资源变更,CDN刷新

准备

整理将要进行的操作步骤

  1. 新建 Github 仓库存放代码
  2. 添加 Github Secrets
  3. 创建 GitHub Actions
  4. 新建 cos 储存桶
  5. 存储桶开启静态网页
  6. github Actions 使用 coscmd 自动同步至cos储存桶
  7. 创建 云函数 scf
  8. 使用云函数检测储存桶自动刷新CDN
  9. 测试 github Actions、 scf、CDN
Github 相关配置

正常新建仓库,添加 Secrets 密钥(关键密钥使用明文很危险),创建 GitHub Actions

新建仓库

略过

添加 Secrets

创建 GitHub Actions

name: push-upload-cos

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - name: Run a one-line script && install cos cmd
    # 使用 coscmd 上传
      run:  sudo pip install coscmd
    - name: Run a multi-line script && cos config
    # 配置 coscmd 相关参数、Id、key、BUCKET、REGION
      env:
        Secret_Id: ${{ secrets.Secret_Id }}
        Secret_key: ${{ secrets.Secret_Key }}
        BUCKET: www-1257003685
        REGION: ap-guangzhou
    # coscmd 使用--> coscmd config -a AChT4ThiXAbpBDEFGhT4ThiXAbp**** -s WE54wreefvds3462refgwewe**** -b examplebucket-1250000000 -r ap-beijing
      run: coscmd config -a $Secret_Id -s $Secret_key -b $BUCKET -r $REGION
    - name: Start Upload
    # coscmd 使用--> coscmd upload -r <localpath> <cospath>
    # coscmd upload -rs 同步上传,跳过md5相同的文件,用 -r 每次全部写入,没有必要
    # 运行后发现 ./.git/* 下的文件特别大 每次同步耗时很久,没有必要同步, 使用 --ignore 忽略;
    # 详情 查看coscmd 文档:https://cloud.tencent.com/document/product/436/10976
      run: coscmd upload -rs ./ / --ignore "./.git/*"

错误整理

403 错误为 key 错误,检查没发现问题,用明文key的话正常,然后更新了一遍 secrets 还不行,最后发现是大小写问题。。。(吐血)

coscmd 安装 需要 sudo pip ,直接pip报错

配置结束后,更新 github 仓库看有没有同步

可以看到使用 -rs 跳过了md5相同的文件,忽略了.git/的文件。github 配置结束

腾讯云相关配置

  1. 创建储存桶
  2. 开启静态网页
  3. 配置CDN
  4. 新建云函数
  5. 测试
创建储存桶 && 开启静态网页

略过,按照腾讯云文档就可以操作

配置CDN

略过,一般不会有什么问题

新建云函数

需要注意 角色 和 地区。

  1. 去 SCF控制台 创建函数。地区需要和存储桶为相同地区

  1. 创建角色,权限搜索scf即可。最好在外面创建角色,在创建函数那里跳出来新建怎么都是失败,角色无权限(给什么权限都没用。。困扰了很久)。外面新建角色后进入scf 会弹窗要授权,点击确定成功即可。

  2. 新建函数

配置函数,下载这个 demo 的代码,解压后修改里面的几个配置信息,包括secretId、secretKey、以及你的cdn域名 下载地址:https://ftp-1257003685.cos.ap-guangzhou.myqcloud.com/腾讯云/scf_about_cdn_refresh.zip

修改好过后,添加,可以测试一下运行是否成功。

配置触发方式,cos 触发,对应的储存桶。一般配置两个,新增和删除,查看 coscmd 文档可以知道 它的上传方式为 put 而不是 post 。

测试

全部配置完毕后进行以下几项测试

  1. CDN 加速
  2. Github git push
  3. GitHub Actions 运行结果
  4. cos 储存桶更新记录
  5. 云函数触发
  6. CDN 自助诊断
  7. 查看CDN刷新日志,确认流程无误

检查CDN,ping 一下网址。可以看到已经成功,响应速度提升明显。

GitHub Actions 运行结果 成功

储存桶更新记录 && 云函数触发 成功

CDN 自助诊断 有问题就修复问题,直到成功

CDN刷新日志,确认流程无误 成功

完结


至此整个流程结束,可以愉快的玩耍了. GitHub Actions 以及 云函数 有更多的玩法,大家可以举一反三搞起来。

参考文章链接:https://cloud.tencent.com/developer/article/1114117

最后一次编辑于  2019-11-21  
点赞 2
收藏
评论

3 个评论

  • 一骑白马开吴疆🐎
    一骑白马开吴疆🐎
    2020-06-21

    在文章来源上,通过webhook(POST到云函数)与github仓库(可以是hexo或jekyll源码)同步,或者说其实与博客构建方式无关,只关注markdown,化繁为简,回归写博文的初衷。在云函数中可以通过markdown解析库来构建。

    下列小程序通过https://github.com/MakerGYT/markdown-it-latex2img从而支持了小程序端latex/mathjax语法的渲染。

    2020-06-21
    赞同
    回复
  • 灿总
    灿总
    2019-11-23


    大触。redirect_ uri域名与后台配置不一
    致,错误码:10003

    这个是怎么回事,求解决

    2019-11-23
    赞同
    回复 1
    • 小满
      小满
      2019-11-23
      ???哪里的配置
      2019-11-23
      回复
  • 力场科技
    力场科技
    2019-11-21

    用久了发现还是内容管理好

    2019-11-21
    赞同
    回复 1
    • 小满
      小满
      2019-11-21
      一力降十会
      2019-11-21
      回复
登录 后发表内容