我们希望将我们的网站/应用资产迁移到 CDN。问题是,我们的 CDN 不提供带 SSL 的自定义域名。换句话说,对于 SSL,他们提供https://1234.cdn.hostingcompany.com
但不提供https://assets.mysite.com
。
所以这似乎是一个巨大的问题,因为我不想使用硬编码的域名重新发布我的应用程序。
所以我在某处读到过一种方法派人去 https://assets.mysite.com
然后重定向到https://1234.cdn.hostingcompany.com
。
这个解决方案是否有价值?或者它是否会完全违背 CDN 的目的?
答案1
您可以在以下位置设置自己的服务器https://assets.mysite.com(具有该 SN 的有效 SSL 证书),返回 301 重定向到https://whatever.cdn.com。这将适用于浏览器本身加载的任何内容。如果您的 Web 应用程序包含 JavaScript 或其他内容(Flash、Silverlight 等),则应该仍然有效,但你应该进行广泛的测试。
这样做的一大缺点是,所有对 CDN 内容的请求都会首先到达您的服务器。数据传输量很小,但延迟至少会达到数百毫秒。在重定向一次后,他们的浏览器应该会记住重定向并转到 CDN 的实际 URL,而不会在将来打扰您的服务器(浏览器缓存会限制这种效果)。
如果你因为数据占用量大而卸载内容,这仍是实现目标的不错方法。如果你卸载内容是为了获得更好的响应时间,那么这无法实现目标。
正如 Ceejayoz 指出的那样,您应该将 CDN 的 URL 作为应用程序的配置变量。 硬编码 URL 是导致难以维护的、人人都讨厌的意大利面条式代码的快捷方式。
答案2
我相信它将对性能产生不小的影响,原因如下:
- SSL 握手:首次连接将
https://assets.mysite.com
非常昂贵,需要大量的 TCP 往返。在首次连接之后,假设其他资产请求相对较快,客户端可以重用该连接,或者至少重用 SSL 会话,而不是进行全新的握手。 - 每一个新的、不同的资产都需要先被访问
assets.mysite.com
,然后才能重定向到 CDN。如果你的资产数量较少且固定,那么这可能是可以接受的。 - 根据客户端的实现,甚至
301
可能缓存得不太好。[需要验证] - 您提到过移动应用程序吗?
适用通常的“测量、测量、测量”免责声明。