最近域名备案了,腾讯云 1M 的机子实在太慢,一开始用的是腾讯 CDN(每月免费10GB),感觉效果不是很好,某些地区延迟非常高。

试了下又拍云感觉效果不错。但是发现 Typecho 后台无法发布文章,插件页面无法打开,清除缓存之后发现无法登录。

此方法理论上适合大部分CDN

查了一下,发现是参数跟随功能的问题

参数跟随功能说明

您可以根据业务需要,控制是否对用户请求 URL 中问号之后的参数进行过滤或者跟随,该模块提供了三种模式的设置,请根据业务情况合理配置,分别为:

1.参数不跟随

默认情况下为【参数不跟随】模式时,此时将会忽略用户请求 URL 中 “?” 之后的参数,可有效提高资源文件的缓存命中率。示例如下:

假如用户请求的 URL 为:https://example.com/index.html?a=1&b=2,回源会过滤参数进行回源,在CDN 节点会过滤掉请求参数进行缓存,也即 CDN 节点会以 https://example.com/index.html 作为缓存
Key;当用户再次发起的请求 URL 为:https://example.com/index.html?a=1&b=2&c=3时,则会命中缓存,无需再次回源站获取资源。

2.全程跟随

当选择【全程跟随】模式,此时将不会忽略用户请求 URL 中 “?” 之后的参数。示例如下:

假如用户请求的 URL 为:https://example.com/index.html?a=1&b=2,CDN 节点会以完整的 URL作为缓存 Key,也即当用户再次请求的 URL 为:https://example.com/index.html?a=1&b=2
时才会命中缓存,否则会直接携带完整的 URL 回源站获取资源。 在该模式下,当用户请求的 URL为:https://example.com/index.html?a=1&b=2&c=3 时,则不会命中缓存,需要重新回源获取资源。

3.回源跟随

当选择【回源跟随】模式时,此时将会忽略用户请求 URL 中 “?” 之后的参数,但在回源阶段会携带用户请求 URL 中 “?” 之后的参数。示例如下:

假如用户请求的 URL 为:https://example.com/index.html?a=1&b=2,在 CDN未命中资源的情况下,CDN 会携带完整的请求 URL:https://example.com/index.html?a=1&b=2回源,并且在 CDN 节点会以 https://example.com/index.html 作为缓存 Key,当用户再次发起请求的URL 为:https://example.com/index.html?a=1&b=2&c=3 时,则会直接命中缓存,无需重新回源。

该模式下,适合首次访问资源时需要携带完整的请求参数回源,但是在 CDN 节点需要过滤参数进行缓存,可有效提升资源文件的缓存命中率,提高分发效率。

注意事项

默认为参数不跟随状态,此时将会忽略用户请求 URL 中 “?” 之后的参数;
针对动态资源服务,建议设置为全程跟随模式;针对静态资源加速服务,建议配置为参数不跟随模式,可以提高资源文件的缓存命中率。

解决方法

将跟随模式改为全程跟随既可

示例

最后修改:2020 年 03 月 31 日
如果觉得我的文章对你有用,请随意赞赏