基于Github Action自动发布git代码到CDN

发布时间: 更新时间: 总字数:670 阅读时间:2m 作者: IP上海 分享 网址
专栏文章
  1. Hugo 使用介绍
  2. 网站 SEO 教程
  3. 使用Jekyll在Github上搭建博客 -- 环境安装
  4. 基于Github Action自动发布git代码到CDN(当前)
  5. 采用 Algolia 作为 Hugo 搜索方案
  6. 使用Jekyll在Github上搭建博客 -- 如何将博客上传至github
  7. 如何在网页中插入关键词
  8. Hugo/静态网站搜索方案
  9. 使用阿里云CDN部署博客404 Page优化
  10. 图片格式转化和压缩
  11. 使用Jekyll在Github上搭建博客 -- 分页实现
  12. 使用Jekyll在Github上搭建博客 -- 子菜单的实现
  13. Jekyll 页面 liquid 语法介绍
  14. 采用Docker和解决Github Pages禁止百度爬虫的问题
  15. jekyll Web服务器列目录漏洞
  16. Jekyll发布文章时字符乱码解决办法 -- invalid byte sequence in GBK
  17. Staticgen
  18. Staticgen
  19. 静态页面发布服务器
  20. Surge 使用介绍
  21. Gitbook 使用

本文总结使用基于gitgithub actionaliyun oss and cdn自动发布hugo的生成的静态页面,本博客也是基于上述技术实现git push后自动发布到cdn,这也是gitops的实践。

为什么使用CDN

CDN 提高用户访问的响应速度和成功率,解决因分布、带宽、服务器性能带来的访问延迟问题,并且减少维护服务器的成本。

技术栈

架构图

auto-public-static-pages-from-git

配置细节

Aliyun OSS

采用私有bucket

Aliyun CDN

  • 换成配置
    • / 目录 7天 1
    • css,js,png,jpg 文件后缀名 1个月 10
  • HTTP头 Cache-Control:36000
  • 404 https://www.xiexianbin.cn/404.html
  • 重写:^/$ /index.html redirect
  • Refer防盗链配置黑名单(见Refer问题)

若发布的是 vue 项目,可以参考:阿里云 Edgescript 发布 vue 项目,不与 重写 部分混用。

优化

  • font-spider 精简 font 字体

其他

FAQ

Refer问题

  • 问题描述

CDN开启Refer防盗链后,从百度或google搜索时,报403错误,如下

403 Forbidden
You don't have permission to access the URL on this server.

Powered by Tengine

http response中有:referer: https://www.google.com/

  • refer工作原理

防盗链功能基于 HTTP 协议支持的Referer机制,通过Referer跟踪来源,对来源进行识别和判断。用户访问加速域名网站内容时,访问请求到达CDN节点后,CDN节点会根据配置的Referer黑白名单,对访问者的身份进行识别和过滤,符合规则的可以顺利访问到该内容。如果不符合规则,该访问请求将会被禁止,返回403禁止访问的错误信息。

  • 解决方法

取消OSSCDNrefer配置

  • 取消refer
  • 启用refer黑名单
  • 启动refer白名单,将常见的搜索添加到refer中,常见的refer包括:
Home Archives Categories Tags Statistics