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