迫于上周 V 友说又拍云比七牛 好。整了个 WordPress + CDN 优化方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
foam
V2EX    分享创造

迫于上周 V 友说又拍云比七牛 好。整了个 WordPress + CDN 优化方案

  •  
  •   foam
    foamzou 2021 年 11 月 21 日 4013 次点击
    这是一个创建于 1541 天前的主题,其中的信息可能已经有所发展或是发生改变。

    长文预警! V 站排版不太好弄。原文: 用 CDN 加速 WordPress

    写在前面

    • 如果你已经有 CDN ,可以跳过 又拍云 部分,直接看插件配置部分。
    • 本篇文章对所有 CDN 都适用,这里以 又拍云 为例子作说明

    又拍云更香?

    上周在 V 站 发了个帖 ,安利了我写的一个 Alfred 插件,该插件可以方便地将图片上传到七牛云,顺便向大家安利了七牛。马上有 V 友跳出来说又拍云更香,免费流量比七牛云多 5 G ,HTTPs CDN 流量也是算在免费套餐里边的。

    趁着周末有点时间,去白嫖下又拍云。

    又拍云联盟

    没错。小标题 是 又拍云对开发者的白嫖活动的名字。我们加入这个联盟就能获得:

    • 10 GB 免费存储
    • 每个月 15 GB 免费 CDN 流量( HTTP[s] 都可以)

    流程很简单。注册账号、在你的网站页脚添加又拍云的链接;填申请表。我是周六申请的,1 个小时左右就收到了审核通过的通知。

    审核通过后,会发放一年份的代金券给你,到期再次申请即可。

    CDN 配置

    系统设计

    不想看我嗦的同学,可以跳过系统设计这部分。配置部分以 又拍云 为例子叙述

    从上图的设计可以看出,我把文件分为三类:

    1. 动态接口 /文件:例如 WordPress 中的 php 接口。这类请求是动态的,不适合放到 CDN 缓存中(一直回源,没有意义)。域名使用 foamzou.com ,该域名解析到我的服务器里,执行 WordPress 程序
    2. 适合短期缓存的文件:指的是短时间不会发生变化,但仍然有可能变化的文件。例如 WordPress 的系统库文件
      • 域名使用:cdn.foamzou.com ,该域名做个 cname 解析到 CDN 服务
      • 当 CDN 未命中资源,则回源到 cdn.foamzou.com ( IP: 回源设置的 IP )
    3. 适合长期缓存的文件:指的是几乎不会发生变化的资源文件。例如图片、第三方 css 、js 资源
      • 域名配置同 2
      • 给 CDN 配置一个对象存储桶
        • 配置指定的路径从桶里取资源,没取到再回源到服务器
        • 从服务器取到数据,存储到桶里
      • 好处有 2 点
        1. 减少回源次数(毕竟对于同一个文件只会回源 1 次),节省服务器带宽
        2. 回源速度快(我在又拍云创建了个对象存储桶,CDN 和 存储 在同一个区域,速度当然比跨个公网访问我服务器快)

    创建 CDN 服务

    创建页面

    1. 加速域名:填一个新的域名,后面需要将该域名解析到 CDN 服务
    2. 源站设置
      1. 回源协议:我选了 HTTPS ,如果你的源站点没有配置 SSL ,就选 HTTP 吧。
      2. 源站地址:填你 WordPress 服务所在的域名。这里要注意,加速域名源站地址 不能填同一个,否则就重定向循环了。
        • 这里也可以填域名,为了方便,我填了 foamzou.com 。这样 CDN 回源时会先将 foamzou.com 解析为 IP 再用来请求 cdn.foamzou.com
        • 这里又拍云产品设计得不好,容易让人误以为会回源到 foamzou.com ,其实不是的。到时候会这样回源请求: curl -H"Host: 加速域名" http[s]://源站地址 IP[或者 源站地址域名的 IP]/xxx
        • 也就是说,我还需要在我的 nginx 配置里的 server_name 多添加一个 cdn.foamzou.com

    添加 CDN 域名解析

    又拍云域名管理 页面,找到 cname 域名。然后到你的域名解析后台,添加一条 cname 记录。

    添加 SSL 证书

    到 HTTPS tab ,给你的域名添加一个 SSL 证书。你可以添加自有证书,也可以在又拍云申请一个免费证书。具体步骤这里就不赘述了,配合去域名解析添加个 TXT 记录就行。

    创建云存储

    到这个 页面 创建服务。即,上边 方案设计 里的 Object Storage Bucket 。我们期望将一般不会变化的资源放到这里。

    配置回源到 bucket

    回源管理 页面,开启 源站资源迁移

    资源路径,我填写了 /wp-content/* , /wp-includes/* 。我希望这两个路径的资源缓存到 bucket 里去。

    CDN 其他配置项

    又拍云还有很多配置项,例如支持 webp 响应等,大伙自行摸索吧。

    至此,CDN 部分配置完毕。但此时面临一个问题,我们配置的 CDN 域名是 cdn.foamzou.com 。而此时 资源的域名是 foamzou.com 。例如这张图片: https://foamzou.com/wp-content/uploads/2021/11/emoji-bg.jpeg

    WordPress 是否有插件,能够将指定路径的域名替换调呢?这样,我们可以通过 https://cdn.foamzou.com/wp-content/uploads/2021/11/emoji-bg.jpeg 访问资源。有的,WP Super Cache !

    配置 WP Super Cache 插件

    安装

    官方下载页 下载插件,放到服务器 WordPress 目录下的 wp-content/plugins 目录里。解压它!

    确保 wp-content 目录的用户组是 www:www (以你实际 php-fpm 用户组为准),目录权限设置为 755 。确保 fpm 有权限写该目录。

    编辑 wp-config.php ,在最后一行的 require 上一行,加上

    define('WP_CACHE', true); define('WPCACHEHOME', '/your-site/wp-content/plugins/wp-super-cache/');

    拷贝文件

    cp wp-content/plugins/wp-super-cache/wp-cache-config-sample.php wp-content/wp-cache-config.php

    到 WP 管理后台 插件管理,启用该插件。

    配置

    WP 管理后台 设置页面,找到 WP Super Cache 设置 页面。

    启用缓存功能。注意每个 tab 都要点底下的 保存 /更新 按钮

    开启 CDN 支持。该插件会将 包含目录 里 URL 的 Site URL 替换为 Off-site URL

    最后

    至此。wp-content 和 wp-includes 底下的文件将走 CDN 加速。

    无论是 CDN 配置 还是 WP Super Cache 插件配置,都还有很多有趣的配置,本篇文章就不再多写了,毕竟我也今天刚配置。大伙自行摸索吧。

    欢迎留言交流。

    7 条回复    2021-11-22 10:43:31 +08:00
    RangerWolf
        1
    RangerWolf  
       2021 年 11 月 21 日
    点赞~ 刚被安利了七牛又被又拍吸引了。。。
    不过又拍已经是很多年前注册过了,不知道还有没有这个羊毛。
    可惜我已经被锁定在腾讯云了~
    foam
        2
    foam  
    OP
       2021 年 11 月 21 日
    @RangerWolf #1 有羊毛的哈,因为不是给新人的。页脚挂个链接说明就有。
    对他们来说,稳赚不赔。
    soho176
        3
    soho176  
       2021 年 11 月 21 日
    还是腾讯云香,每个月送 20G
    DrPika
        4
    DrPika  
       2021 年 11 月 22 日   1
    - dogeCloud 送 20G ,包括 https ,V2EX 前两天才有他们的推广
    - 字节跳动的火山引擎 X 送 10G 流量和免费图片处理,包括 https ,客服说是永久不取消

    @soho176 20G 怎么来的,我只有 10G 的老用户长期免费额度
    RangerWolf
        5
    RangerWolf  
       2021 年 11 月 22 日
    @Pika666
    @soho176 +1 我也是老用户 免费 10G 下行流量 跟 10G CDN 回源流量
    zhensjoke
        6
    zhensjoke  
       2021 年 11 月 22 日 via Android
    又拍云似乎是比七牛腻害点。
    几年前在七牛注册绑定了域名,删除之后在又拍云无法绑定,询问两边平台客服得到结果七牛用了又拍的服务。七牛的删除是伪删除,并没有在又拍平台删除。
    jsthon
        7
    jsthon  
       2021 年 11 月 22 日
    又拍确实好用,用了快 10 年了,配置基本都是秒更新,不像某些平台需要等 2 小时
    另外,又拍云 “源站资源迁移” 这个功能,不知 AWS 有没有类似的实现,将回源缓存到 bucket
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2378 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 11:22 PVG 19:22 LAX 03:22 JFK 06:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86