我们有一个 Web 服务,其前端被拆分为多个应用程序,由云端端点提供。这些应用程序目前都有自己的子域,例如 service-a.mydomain.com、service-b.mydomain.com 等。
然而,如今子域名几乎对谷歌如何建立域名权威没有影响,域名权威已经成为 SEO 的圣杯。因此,为了搜索引擎优化的目的,我们希望将所有内容移至顶级域名中的路径。因此,之后应该是 mydomain.com/service-a、mydomain.com/service-b 等。
显然,这似乎需要一个代理,如 API 网关或类似的东西,来路由所有内容。问题是……如果所有内容都通过同一个代理,那么 cloudfront(或任何其他 CDN)的主要优势就几乎消失了。当然,你可以在代理后面运行它,但你只有一个缓存。再见边缘位置。那时,将缓存放在代理本身中确实更有意义。
所以我的问题是,如果我不能为每个端点提供自己的子域,是否还有某种方法可以利用 Cloudfront 边缘位置?或者这种域设计方式是否只需要放弃 CDN 的优势?
我研究过 AWS 本身是如何做的。毕竟,他们有大量的前端应用程序,都是从一个区域子域交付的,所以他们肯定有同样的问题。
答案似乎是从实际域传递 HTML 文件,通过 CDN 加载其所有资产(css、脚本、字体等)。因此基本上只是从实际域传递标题页,而整个网站的其余部分则通过后门潜入。
在我们的案例中,前端应用程序是用 Angular 编写的,实现这一点面临一些挑战,但它确实有效。