博客
- 写作的过程其实就是思考的字面化,梳理知识体系的同时反思知识的内化程度,分清楚哪些是“知道了”,哪些是“掌握了”。
- 通过博客的形式分享是学习的一种技巧,内化知识的同时也从分享中得到快乐。
- 用写作来记录成长的过程,保持这种习惯能让你听到意志力成长的声音。
怎么搭建自己的博客
- 个人主页注册。指的是在博客网站、论坛或社区上注册个人主页。例如知乎、掘金、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刷新
准备
整理将要进行的操作步骤
- 新建 Github 仓库存放代码
- 添加 Github Secrets
- 创建 GitHub Actions
- 新建 cos 储存桶
- 存储桶开启静态网页
- github Actions 使用 coscmd 自动同步至cos储存桶
- 创建 云函数 scf
- 使用云函数检测储存桶自动刷新CDN
- 测试 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 配置结束
腾讯云相关配置
- 创建储存桶
- 开启静态网页
- 配置CDN
- 新建云函数
- 测试
创建储存桶 && 开启静态网页
略过,按照腾讯云文档就可以操作
配置CDN
略过,一般不会有什么问题
新建云函数
需要注意 角色 和 地区。
- 去 SCF控制台 创建函数。地区需要和存储桶为相同地区
-
创建角色,权限搜索scf即可。最好在外面创建角色,在创建函数那里跳出来新建怎么都是失败,角色无权限(给什么权限都没用。。困扰了很久)。外面新建角色后进入scf 会弹窗要授权,点击确定成功即可。
-
新建函数
配置函数,下载这个 demo 的代码,解压后修改里面的几个配置信息,包括secretId、secretKey、以及你的cdn域名 下载地址:https://ftp-1257003685.cos.ap-guangzhou.myqcloud.com/腾讯云/scf_about_cdn_refresh.zip
修改好过后,添加,可以测试一下运行是否成功。
配置触发方式,cos 触发,对应的储存桶。一般配置两个,新增和删除,查看 coscmd 文档可以知道 它的上传方式为 put 而不是 post 。
测试
全部配置完毕后进行以下几项测试
- CDN 加速
- Github git push
- GitHub Actions 运行结果
- cos 储存桶更新记录
- 云函数触发
- CDN 自助诊断
- 查看CDN刷新日志,确认流程无误
检查CDN,ping 一下网址。可以看到已经成功,响应速度提升明显。
GitHub Actions 运行结果 成功
储存桶更新记录 && 云函数触发 成功
CDN 自助诊断 有问题就修复问题,直到成功
CDN刷新日志,确认流程无误 成功
完结
至此整个流程结束,可以愉快的玩耍了. GitHub Actions 以及 云函数 有更多的玩法,大家可以举一反三搞起来。
在文章来源上,通过webhook(POST到云函数)与github仓库(可以是hexo或jekyll源码)同步,或者说其实与博客构建方式无关,只关注markdown,化繁为简,回归写博文的初衷。在云函数中可以通过markdown解析库来构建。
下列小程序通过https://github.com/MakerGYT/markdown-it-latex2img从而支持了小程序端latex/mathjax语法的渲染。
大触。redirect_ uri域名与后台配置不一
致,错误码:10003
这个是怎么回事,求解决
用久了发现还是内容管理好