重写以指向 CDN

重写以指向 CDN

我希望使用 CDN 来交付我们所有的图像文件。我们只需使用 CDN 的域名而不是我们自己的域名来调用图像即可。我可以轻松地在我们的内容管理系统中更改域引用,但这样一来预览就会中断,因为它正在寻找一个尚未出现在我们的外部服务器上的图像以供我们的 CDN 从中拉取。只要我们发布,CDN 就会拉取一个图像。

我正在考虑在我们的外部站点 .htaccess 文件中添加一条规则,将来自 /webfiles 文件夹的所有图像请求重定向到我们 CDN 上的相应文件夹。我意识到当 CDN 尝试获取图像时,它会被发送回自己的服务器,因此我添加了一条引荐来源行,以便只有来自我们服务器的请求才会提取 CDN 版本。在获得一些知识反馈之前,我不愿意在我们的实时服务器上尝试这种方法。这种方法有意义吗?这是正确的顺序吗?(我会先使用 302 进行测试。)

RewriteCond %{HTTP_REFERER} ^https://www.example.com [NC]
RewriteCond %{REQUEST_URI} ^\.(jpg|jpeg|png|gif|webp)$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)www.example.com/webfiles/$ [NC]
RewriteRule ^(.*)$ http://example-cdn.com/webfiles/$1 [R=301,L]

答案1

像这样添加重定向在很多方面违背了 CDN 的初衷。当客户端请求图像文件时,他们首先向您的服务器发送请求,服务器以重定向进行响应,然后客户端从 CDN 请求该图像文件。

这会增加图像加载的延迟。

您应该更改 CMS,以便在预览中它使用来自您服务器的 URL,但对于前端它使用 CDN 的 URL。

相关内容