Blog CDN加速


Blog CDN加速

  • 在之前的文章中,使用Docker Compose &Halo 搭建博客,伴随着访问量的提升(其实并没有),感觉有必要使用CDN服务做个网站加速了,毕竟七牛云也提供了一定的免费额度...

    image-20220426170144141

什么是CDN

  • CDN 的全称是(Content Delivery Network),即内容分发网络,通俗的理解就是CDN服务提供商提供了若干的缓存服务器节点,或者称作是缓存边缘节点,通过将用户网站的内容提前缓存到这些节点中,那么网站的用户则可以通过就近的节点获取网站内容,从而实现网站加速的效果

    image-20220426170719616

  • 当然,除了网站加速的功能,正确配置的 CDN 还可帮助保护网站免受某些常见的恶意攻击,比如DDOS

步骤

  • 在七牛云全站加速页面添加域名

    image-20220426155737783

    • 关于证书,在Traefik为服务添加HTTPS支持文章中使用letsencrypt申请,申请得到的证书数据存储在acme.json文件中,为了将其转换为一般的pemkey文件,可以使用traefik-certs-dumper镜像执行转换,该镜像使用Docker Compose部署的yaml脚本如下:

      version: '3.7'
      
      services:
        certdumper:
          image: humenius/traefik-certs-dumper:latest
          volumes:
          - /root/traefik:/traefik:ro
          - ./output:/output:rw
          environment:
            - ACME_FILE=/traefik/acme.json
            - DOMAIN=blog.demoli.xyz
          restart: always
          healthcheck:
            test: ["CMD", "/usr/bin/healthcheck"]
            interval: 30s
            timeout: 10s
            retries: 5
      
      • /root/traefikacme.json文件所在的文件夹
      • 转换得到的证书文件将被存放到当前目录下的output目录下
      • 环境变量DOMAIN指定要提取的域名
      • 更多配置参考镜像GitHub README
      • 当然使用了letsencrypt的证书也就意味着需要手动执行证书的更新,这一点务必注意
    • 关于源站测试,这里直接使用一篇博客做测试,其实这里有待改进,这个测试文件应该是一个固定的文件,可以选用服务中的固定静态文件做测试用

  • 创建完毕后,进行域名验证,按照提示向域名提供商的操作界面中添加TXT记录即可,随后点击验证

    image-20220426173942844

  • 验证通过后,添加CNAME记录,主机名还是加速域名的主机名(以本文为例即是blog),类型为CNAME,值为七牛云提供的CNAME值,注意添加前首先关停之前的A记录的解析,否则会冲突

  • 添加解析后使用nslookup blog.demoli.xyz验证

    image-20220426161121560

参考

  • 什么是CDN,以及其原理
  • CDN是什么
  • CDN回源配置问题
  • 使用七牛云加速网站配置
  • 为什么加速域名与回源域名不能相同