1. cloudflare dns proxy 开启以后就是走 CDN ,别人 ping 我域名的时候 ping 不到真正解析的 IP ,关了就是直接常规解析?

2.配置页面规则:https://www.zhudc.com/free-cdn/767/

其他状态解释如下:

cf-cache-status:DYNAMIC (动态) 如果是“DYNAMIC”则说明,该站可能只开启了小云朵,并没有配置整站完全缓存。 cf-cache-status:BYPASS (绕过) 如果是“BYPASS”则说明,该站针对这个页面设置了绕过,不允许缓存

3.cloudflare 证书问题

始终使用 HTTPS

将所有使用方案 “http” 的请求重定向到 “https”。这将应用于该区域的所有 http 请求。

转成https后,用的是cloudflare的证书,如果关闭掉dns,就无法使用证书,网站用https打不开。dns与https同在

 

大部分常见的图片、文件、字型文件都预设会缓存起来。值得注意的是,免费版的 CloudFlare 方案并不缓存超过 512 MB 的文件。(512 MB 其实超级大了,佛心公司;升级成付费版则可以缓存高达 5 GB 的文件)

另外,如果要判断你的文件有没有被 CloudFlare 缓存,可以使用 DevTools 来检查表头,其中有一个叫做 CF-Cache-Status 的 header,如果显示 HIT 就是有被缓存;显示 MISS 或 EXPIRED 就是缓存失败,可能有其他原因。

 

压缩你的 Code,减少文件大小

CloudFlare 也可以帮你 Minify 你的程序码。透过把你程序码中的多余空白、换行符号都删除掉以后,你的文件大小会减少(虽然一个文件减少可能不多,多个文件都减少一点就会很可观),藉此提高网络传输速度、降低读取时间。

可以在 CloudFlare 后台的 Speed→Optimization,把 Auto Minify 的 JavaScript、CSS、HTML 都打勾,就会帮你压缩这些东西了。

另外在一样的地方下面也有个 Brotli 选项,建议也把它打开。Minify 只是把多余空白和换行符号删掉而已,Brotli 则是使用特别的压缩演算法来将文件进行压缩,就像文件太大要传给朋友也会先压缩过再传比较快一样。

cloudFlare dns解析 java cloudflare dnspod_Caching

 

 

你可能听过 Gzip 压缩,Brotli 压缩(有时称为 br 压缩)则是比 Gzip 压缩比更高的新演算法

使用 Rocket Loader

一样在 Speed→Optimization 中,下方还有一个 Rocket Loader。Rocket Loader 可以延迟载入你的 JavaScript 脚本,让浏览器优先处理你的文字、CSS 等跟「渲染(Render)」比较有关係的程序码,理论上能够加快使用者体验、降低首次渲染时间,提高 SEO。

cloudFlare dns解析 java cloudflare dnspod_HTML_02

 

 

除此之外,Rocket Loader 其实还会试图将 JavaScript 缓存在装置的 Local Storage 中,能更有效减少网络传递

 

设置缓存程度和浏览器表头

在 Caching 页面中,你则可以设置 Caching Level 和 Browser Cache Expiration。

Caching Level 是指你要怎么处理浏览器带的 query string,遇到 query string 时要不要把它视为同样的文件,有三个选项:

  • No query string:只缓存没带有 query string 的文件。换句话说 https://example.com/kangaroo.png 会被缓存,但 https://example.com/kangaroo.png?foo=bar 则不会被缓存。
  • Ignore Query String:只看网址和档名,忽略 query string。不管后面有带 query string、query string 不一样,通通视为同一个文件缓存起来。
  • Standard:不同 query string 就视为不同的文件。

而什么叫视为不同文件呢?比方说今天存取 kangaroo.png 时已经被缓存起来了,但某位使用者存取到 kangaroo.png?fbclid=239jf489ja 时则会被视为另外一个文件,CloudFlare 会认为没有缓存过这个文件,再跑去你的主机要一次才又缓存起来。这边可能要想一下你的网站有没有跟 query string 有关的设置,如果不清楚的话,建议通通设置为 Standard。

另外这边也可以设置 Browser Cache Expiration。除了 CloudFlare 会缓存以外,浏览器本身也是会进行缓存的,这对重複浏览你网站的使用者来说很有帮助。

一般来说浏览器会到主机尝试拿新的文件,但如果你的浏览器已经对这张图片、这个 JS 文件、或这个 HTML 文件等等缓存处理过,它就会显示为 HTTP 304 Not Modified,优先使用电脑本机缓存的文件,不用耗费流量、也降低读取时间。这个设置则是建议浏览器,每个静态文件要缓存多久。

你也可以用 DevTools 观察修改这个参数后,Response header 会有什么不一样。后面会再花时间讨论这个设置

cloudFlare dns解析 java cloudflare dnspod_Caching_03

 

 

清除错误或过期的缓存

最后,由于你刚刚设置了那些缓存,缓存可能不会马上生效。例如原本你并没有设置 Auto Minify,所以 CloudFlare 把你的 HTML 缓存起来都是没 Minified 的版本,你可以在这里选择 Purge Everything,强制清除所有已经缓存过的资料,这样就能让这些设置马上生效。

但是一次清掉所有缓存可能会造成你的主机产生大量流量,所以你可能想要只清除某些特定文件的缓存(例如你某个 CSS 进行修改,想要马上生效,不想要等一个月的缓存时间结束),你就可以选择 Custom Perge,并输入那个文件的 URL,只删除该文件的缓存。

cloudFlare dns解析 java cloudflare dnspod_HTML_04