将 Subdomain 和 Cloudflare 合并为免费图像 CDN

ARTRU
将 Subdomain 和 Cloudflare 合并为免费图像 CDN

“CDN”对于你来说可能已经不再陌生了。 CDN帮助网站大大减少请求数量,同时也帮助网站加载速度更快。这也或多或少地影响了 Google Speed Insights、GTmetrix 等速度测量工具的分数……

在线搜索,您会发现很多关于如何设置 CDN 的文章。每种工具都有优点和缺点。在本文中,我将向您展示如何使用 W3 Total Cache 插件将子域用作 Cloudflare 的免费图像 CDN。

为了清楚地理解它是如何工作的,我将实现过程总结如下:

  1. 创建子域和文件夹来存储图像。
  2. 在 W3 Total Cache 插件中设置 CDN 配置。
  3. 更改排名数学站点地图中的 CDN url。
  4. 设置 Canonical 标签以实现良好的 SEO。

创建子域

您仍然可以使用主网站当前的托管作为 CDN。我利用免费托管来存储图像。您可以咨询 123主机 或者 阿兹迪吉.

将子域名的 DNS 记录指向辅助主机的步骤您可以自己完成或参考网上。操作与指向主域名相同。我不会再指导你了。

如果您仅对子域使用 CDN,则无需添加 2 条 A 和 CNAME 记录或完全关闭它 金云 (代理)为主域。

为CDN子域创建记录A
为CDN子域创建记录A

别忘了打开模式 缓存所有内容 在 Cloudflare 中。

缓存所有内容 Cloudflare
缓存所有内容 Cloudflare

关于在子域上保存图像的文件夹结构。请按照主网站上的方式进行设置。

例如,主网站上的图片链接是:

  • domain.com/wp-content/uploads/2023/10/abc.jpg

那么CDN的图片链接是:

  • cdn.domain.com/wp-content/uploads/2023/10/abc.jpg

然后你需要创建一个帐户 文件传输协议 填充 W3 Total Cache 插件。

在 W3 Total Cache 插件中配置 CDN

1. 表现常规设置CDN.

  • 勾选复选框 使能够CDN类型 选择 自托管/文件传输协议上传.
  • 然后按 保存设置.
在 W3 Total Cache 中启用 CDN 选项
在 W3 Total Cache 中启用 CDN 选项

2. 移至项目 CDN 设置详细信息。

CDN W3 总缓存
CDN W3 总缓存

3. 因为我只想为图像创建 CDN,而不包含 css、js...所以我会检查它 托管自定义文件.

托管自定义文件 CDN W3 总缓存
托管自定义文件 CDN W3 总缓存

4. 向下滚动到该部分 先进的 寻找 自定义文件列表。为图像创建 CDN,因此我将按如下方式填写此部分:

自定义文件列表 CDN W3 总缓存
自定义文件列表 CDN W3 总缓存

5. 部分 配置:对象 填写FTP配置信息。

  • 部分 将站点的主机名替换为 您输入用作 CDN 的子域名。
  • 按下按钮 测试FTP服务器 检查 FTP 配置是否已连接。
配置对象 FTP W3 总缓存
配置对象 FTP W3 总缓存

6. 因为这些选项对我来说不是必需的,所以我将它们全部留空。

高级 W3 总缓存
高级 W3 总缓存

从现在开始,每次您上传新图片时,W3 Total Cache 都会自动将该图片推送到辅助托管。

更改站点地图中的 CDN url

要检查站点地图中的图像网址,请访问帖子的站点地图链接。正如我的是 https://artru.net/post-sitemap.xml

然后右键→选择 查看页面源代码 (或按快捷键 Ctrl + U)。不配置时,图片url仍然是原来的url。

您需要将此代码插入到文件中 函数.php 主题或代码片段插件的。这是Rank Math提供的过滤器,如果你使用其他SEO插件,也可以找到类似的文档。

排名数学来源: 过滤以在站点地图中添加 CDN 图像 URL.

代替 domain.com 与您的域名。

/**
 * Filter to Add CDN Image URLs in the Sitemap
 *
 * @param string $src  Image URL.
 * @param object $post Post object.
 */
add_filter( 'rank_math/sitemap/xml_img_src', function( $src, $post ){
	$src = str_replace( 'http://domain.com', 'https://cdn.domain.com', $src );
	return $src;
}, 10, 2);

要创建新的站点地图,您需要进入 站点地图设置 Rank Math → 增加或减少数字 每个站点地图的链接 并按下 保存更改.

url CDN 图片 站点地图 排名数学
url CDN 图片 站点地图 排名数学

设置 Canonical 标签

这可能是人们很少关注的部分。但是,如果设置不正确,CDN 图像将被视为重复内容,因为原始 url 的图像仍在被索引。

为了更好地了解Canonical对SEO的影响,请参考内容 如何使用 rel="canonical" 和其他方法指定规范 由谷歌。

为此,请访问该部分 变换规则修改响应头 在 Cloudflare 中。

修改响应标头 Cloudflare
修改响应标头 Cloudflare

你可以参考我的Canonical配置。

响应标头修改规则 Canonical Cloudflare
响应标头修改规则 Canonical Cloudflare

(starts_with(http.request.full_uri, "https://cdn.artru.eu.org/wp-content/uploads/")) 表示以以下开头的 URL https://cdn.artru.eu.org/wp-content/uploads/ 将应用规范配置。

接下来选择 设置动态

  • 标题名称填写文字 Link
  • 填写的值 concat("<https://artru.net", http.request.uri.path, ">;", "rel='canonical'").
  • 按照我的参数 https://artru.net/wp-content/uploads/ 被视为根 URL https://cdn.artru.eu.org/wp-content/uploads/.

要进一步检查,您应该打开带有 CDN url 的图像文件。按 F12(开发工具)。

检查开发工具中的 CDN 规范链接
检查开发工具中的 CDN 规范链接

奖励:增加缓存时间

因为整个文件是静态的,变化很小。您应该将 Cache Browser(用户浏览器缓存)的最高过期时间设置为 1 年,将 Cache Edge(Cloudflare 的 Hosting 缓存时间)设置为 1 个月。

在 Cloudflare 页面规则中自定义缓存时间
在 Cloudflare 页面规则中自定义缓存时间

因为缓存是长期保存的。如果您更改图像但保持文件名不变,则必须清除 Cloudflare 中的缓存才能应用所有更改。

评论

相关文章