整个站点的CDN - 当源服务器等于超级名称时

时间:2014-10-14 23:50:07

标签: apache .htaccess static cdn

我正在为我的网站使用静态网站生成器,这意味着我的整个网站都是静态的。我的所有资源和HTML文件都以域名前缀引用,以便可以使用CDN。

但是由于SEO问题,我禁用了非www访问权限并将其重定向到www.domain.com变体。但是现在我显然不能使用CDN,因为原始服务器需要与超级名称不同。

CDN可以用于HTML文件吗? 如何通过www.domain.com提供内容并使用CDN? 我可以将CDN访问static.domain.com作为原始服务器,但拒绝访问其他客户端吗? 看起来很笨拙!

有什么想法吗?

使用Apache2.2尝试通过我的托管公司的网站使用Level 3 CDN

1 个答案:

答案 0 :(得分:0)

取决于您可以通过托管公司在CDN上设置的内容,最好的方法是覆盖CDN设置上的主机标头。 所以,首先让我们来看看你的DNS设置:

  • www应指向CDN
  • origin应指向您的Web服务器。

现在,在CDN上,您将原点设置为origin.yourdomain.com并添加(我无法告诉您是否可以在您的设置中使用)到www.yourdomain.com的“http主机标头覆盖”。在某些情况下,它是以相反的方式实现的,因此您将“强制IP主机”发送到origin.yourdomain.com。

在这两种情况下,你想要实现的目标是:

  • 当最终用户请求www.yourdomain.com时,它已解析为CDN
  • CDN需要从您的服务器获取内容,因此它在端口80(假设HTTP)上建立会话到origin.yourdomain.com
  • 一旦端口打开,CDN就会发送(以及其他)带有www.yourdomain.com的HTTP主机标头(这是APache正在查看和评估的基于名称的虚拟主机)。

通过这种方式,您可以使用与没有CDN时完全相同的方式设置Web服务器。