!
也想出现在这里? 联系我们
内容广告块

CloudFront+WordPress实现全站CDN

释放双眼,带上耳机,听听看~!

本文遵守署名 4.0 国际 (CC BY 4.0)协议

准备工作

CloudFront 是 Amazon 家的东西,所以需要准备一个 AWS 账号
AWS 账号审查机制可谓是全球几大知名服务商里最松的了,虚拟信用卡就可以过验证,,所以注册并不麻烦,某宝上面一刀信用卡特别多实在不行可以去拍一张,这里不再

开始配置

打开 AWS 控制台,点击 CloudFront

然后点击 Create Distribution,在 Web 栏下面点击 Get started 即开始配置

配置 Origin Settings 回源设置

Origin Domain Name 就是你的源站域名(请注意 CloudFront 源站不接受 ip 地址,强制使用域名,我也不知道为什么)

但是请注意,这里的 Origin Domain Name 可不能填写网站的主域名,比如对于奶冰的 IceBox 来说这里就不能直接填写 milkice.me,而是要开个子域名直接指向源站 IP,比如这里的 www.milkice.me 就是开了个 A 记录到源站 IP

Origin Path 就是你想要加速的路径(默认为空)

比如你的源站地址是 ,则 Origin Domain Name 这里可以填写一个 xxx.example.com,然后 DNS 记录里设置 xxx.example.com 指向源站 ip,Origin Path 填写 /wordpress

如果你想要部署强制 https 可以选择 HTTPS only,其他选项不变即

 

CloudFront+WordPress实现全站CDN-董岩松博客------数字符号工作室
 

配置 Default Cache Behavior Settings

Default Cache Behavior Settings,其实就是配置在默认情况下 CloudFront 的一些缓存条件

这里的默认情况即我们想要缓存加速的文件(有些目录需要另外加 Behavior 来排除,后文会说)

由于 wordpress 的一些特性,有一些设置需要变动

– Forward Headers(转发 header)需要将 host 添加进白名单设置

– Whitelist Cookies(Cookie 白名单)需要将 wordpress * 和 wp * 加入白名单

– Query String Forwarding and Caching 一些博主推荐设置为 Forward all, cache based on all,但是在奶冰这里测试的情况下如果选择 cache based on all 会导致基本上所有请求都不会缓存(抓包抓到的 HTTP 头里基本上都是 X-Cache:Miss from cloudfront),前期不推荐 cache based on all,后期像搜索功能如果出现了问题可以尝试开启

– (可选)Viewer Protocol Policy 中,如果站点是 HTTPS 站点可以设置 Redirect HTTP to HTTPS 以提高安全性

具体配置看图

 

CloudFront+WordPress实现全站CDN-董岩松博客------数字符号工作室

CloudFront+WordPress实现全站CDN-董岩松博客------数字符号工作室
 

配置 Distribution Settings 分发设置

有这么若干要配置的点

– Price Class 个人觉得不用配置也可以,不过你要是想省点钱的话就选择第二档(Use Only US, Canada, Europe and Asia)

– Alternate Domain Names (CNAMEs) 对于全局 CDN 来说这里要填的就是要加速的域名,我这里就是 milkice.me

– SSL certificate 由于要配置全站 CDN 所以第一个选项不可用(如果你能忍受那个红色的 SSL warning 也无所谓),一般都是选择 Custom SSL certificate,这里不管你有没有 ssl 证书你都可以在 Amazon Certificate Manager 签发 Amazon 证书用于分发服务器与终端之间的数据加密,点击 Request or Import a Certificate with ACM 签发证书后回来刷新一下就有你的证书了,应用即可

其他默认,看图即可

 

CloudFront+WordPress实现全站CDN-董岩松博客------数字符号工作室
这时候就基本完成了,点击 Create Distribution,Amazon 即开始部署

 

后期附加操作

估计因为 CloudFront 在全球节点太多了吧

每次创建 / 修改设置之后重新配置花的时间挺长的大约 5-10 分钟,这时候可以慢慢等待或者配置进一步的 Behavior Settings

到 Behaviors,点击 Create Behavior

– Path Pattern 填写 /wp-admin,是不是很熟悉呢,对的没错,wordpress 默认管理界面,由于 wp-admin 一般都需要动态生成所以这时候不需要 CloudFront 服务器缓存,所以要创建一个 Behavior 以规避这种情况

– Path Pattern 填写 /wp-login.php,这是在根目录下的用于登陆的一个 php 文件,由于要 POST 登录数据所以这个文件也不需要缓存,需要特别设个规则

如图配置

 

CloudFront+WordPress实现全站CDN-董岩松博客------数字符号工作室

CloudFront+WordPress实现全站CDN-董岩松博客------数字符号工作室
(其实两个配置是一样的只要把 Path Pattern 的值改一下即可,wp-login.php 我就不发截图了)

 

最后好了应该是这样

 

CloudFront+WordPress实现全站CDN-董岩松博客------数字符号工作室
接下来去 NS 服务商配置 CNAME 记录

 

将原来的记录删掉,再加个 CNAME 记录指向 CloudFront 给出的地址即可

 

CloudFront+WordPress实现全站CDN-董岩松博客------数字符号工作室
然后就等全球 DNS 服务器更新缓存吧

 

(๑´ㅂ`๑)

后续一些使用感受

上了 CloudFront 之后速度的确快了一点,不过因为第一次访问的时候需要回源下载数据缓存,所以会比较慢

但是很恶心的一点是因为奶冰目前的 dns 不能根据地理位置分流,导致被分到的 CDN 边缘节点不是东亚节点而是全球节点,大大降低了访问速度

看了一些别的博主的解决方案是用 Amazon 的 Route 53 GeoDNS 功能实现准确分流,但是我又不想把 NS 服务器转到 Amazon 那里去(主要是全球 48 小时更新时间太恶心)

但是似乎可以指定子域名的 NS 服务器为 Route 53,暂时未测!

参考资料

http://www.xiongge.club/170.html

转载请注明来自董岩松博客

给TA打赏
共{{data.count}}人
人已打赏
PHP学习日记技术笔记

PHP解密-我可以解密哪些PHP加密?

2020-11-20 21:35:37

学习日记技术笔记

利用应用转生和QN框架在QQ上发送卡片消息教程(假红包引流)

2020-11-21 13:31:07

版权声明 本站所发布的一切与破解相关的文章仅限用于学习和研究目的,请在下载后的24个小时之内,从您的电脑中彻底删除。所有资源均来自于网络,不得用于商业或者非法用途,否则一切后果请用户自负。如有问题请及时与我联系,QQ:526733428,或提交工单。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
今日签到
有新私信 私信列表
搜索