跳转到主要内容

如何利用又拍云 CDN 给 Drupal 加速

Tony 提交于 周二, 2020-03-24 - 19:21
内容

最近备案了一个仿蓝汛 CDN 的域名,当然是为了享受国内的 CDN 加速服务,例如又拍,七牛,各种 OSS。但我对七牛没什么感觉(单纯是名字不讨喜),各种 OSS 感觉又太重了,不值得为这个功能去记另外一套体系的东西,于是选择又拍云作为 CDN。

目前你访问 TONYHEAD 通利堂 的时候,只会从 tonyhead.com 上请求 index.php 和一个负责生成二维码的 qr.php ,其他的静态资源例如 .css .js .jpg 都会从又拍云 CDN tonyhead.chinacachecdn.com 处加载。这些静态资源其实都储存在 tonyhead.com ,只是通过又拍云这个高速的中间人实现最优的内容投递。

访问路径大概是这样:访客  <->  ⚡又拍云 CDN⚡ <-> 源站 tonyhead.com

先在又拍云创建一个 CDN 空间,在 CDN 空间的设置里面:

  • 回源管理 需要添加源站地址如 www.tonyhead.com ,端口80,勾上协议跟随,又拍云会自动寻找位于 443 端口上的 HTTPS 端口。
  • 回源 Host 需要添加源站 www.tonyhead.com 以匹配 Drupal settings.php 里 trusted_host_patterns 的设置。
  • 源站资源迁移 建议勾上并配置一个又拍云云储存空间,当静态资源被第一次访问的时候,静态内容就会保存在这个空间里,访客会直接从又拍云 CDN 拉取这个文件,而不用每次都回源到 tonyhead.com 上。
  • 缓存配置 设置为全局缓存7天。
  • 性能优化成本控制图像处理 我没修改,用的都是默认。
  • HTTPS 可以申请免费的 Let's Encrypt 证书。

边缘规则 很重要要单独拿出来说说,我配置了一条规则,用来防止搜索引擎重复收录源站和又拍云 CDN 镜像站的 HTML 页面(想想看,作为网站主的你发现 www.tonyhead.com 和 cdn.tonyhead.com 的文章页居然是一样的时候是多尴尬的事情)。网上很多教程都是❌错的,或者效果不好(robots.txt 只能蒙搜索引擎,但访客依然有机会把镜像站的 URL 加入收藏夹),请用我这里的设置,原理就是告诉又拍云 CDN,当访客访问到非静态内容后缀的时候,跳转回源站。

简单来说,这个规则实现了这个功能:

  1. 当访客访问 cdn.tonyhead.com/1.jpg 的时候,回源 www.tonyhead.com/1.jpg,并用 cdn.tonyhead.com/1.jpg 推送给访客(加速生效)。
  2. 当访客访问 cdn.tonyhead.com/about.html 的时候,触发边缘规则,浏览器收到 301 重定向跳转回 www.tonyhead.com/about.html(同时防止了镜像收录)。

下图 正则不匹配(不区分大小写) 后的那个 匹配值 截图不完整,贴到这里,可以根据自己的情况增加或删除后缀。   

.(jpeg|jpg|gif|png|css|js|svg|ico|zip|rar|7z|woff2)(.*)$

如何利用又拍云 CDN 给 Drupal 加速

又拍云 CDN 那边就设置好了,接着配置 Drupal ,先下载一个 CDN 插件,这个插件会自动把页面元素的 URL 替换成指定的 CDN 域名 URL。再启用插件,在后台进行配置,把需要加速的静态文件后缀加上,又拍云 CDN 的域名加上,保存即可。

如何利用又拍云 CDN 给 Drupal 加速

清空 Drupal 缓存,打开 F12 看看效果吧。🤓

文章标签

评论

添加新评论

此字段内容将保密,不会被其他人看见。

Filtered HTML

  • 网页和电子邮件地址自动转换为链接。
  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <drupal-entity data-*>
  • 自动断行和分段。
有时候,快乐的经历留在心里就行了,不要留下证据,但我想可以和你一起快乐。

猜你喜欢