Mod rewrite HTTP 301是将现有网站与AWS CloudFront集成的最佳方式吗?

Mod rewrite HTTP 301是将现有网站与AWS CloudFront集成的最佳方式吗?,mod-rewrite,nginx,amazon-web-services,cdn,amazon-cloudfront,Mod Rewrite,Nginx,Amazon Web Services,Cdn,Amazon Cloudfront,我们现有的web产品使用了大量静态图像、css文件、js库和其他静态内容。每当加载一个页面时,浏览器通常必须发出几十个额外的HTTP请求来检索所有内容,这几乎使加载时间增加了一倍。我们希望将内容放在Amazon的CloudFront上以缩短加载时间,我正在尝试在两种可能的实现方法中进行选择 1) 。检查对此类内容的每一次引用,并将其替换为对CloudFront的请求。例如,images/image.jpg将变成qwerty.cloudfront.net/images/image.jpg。这将导致

我们现有的web产品使用了大量静态图像、css文件、js库和其他静态内容。每当加载一个页面时,浏览器通常必须发出几十个额外的HTTP请求来检索所有内容,这几乎使加载时间增加了一倍。我们希望将内容放在Amazon的CloudFront上以缩短加载时间,我正在尝试在两种可能的实现方法中进行选择

1) 。检查对此类内容的每一次引用,并将其替换为对CloudFront的请求。例如,images/image.jpg将变成qwerty.cloudfront.net/images/image.jpg。这将导致一个“真正的”集成,但实际上我不可能实现它。特别是对于不同的JS库,它们会动态选择自己的图像

2) 。保持images/image.jpg不变,并告诉服务器对此类请求执行301到CloudFront。这个实现的问题是,在服务器将请求重定向到CloudFront之前,请求实际上必须一直路由到服务器


所以基本上我不确定301是否是个好主意。只有当将请求路由到服务器的时间与服务器将此映像发送回客户端所需的时间相比可以忽略不计时,这才有效。此外,我不知道服务器处理负载尖峰有多容易——如果流量尖峰发生,它会生存下来吗?它将必须提供大量301重定向服务(尽管我认为会,因为这样做应该比从文件系统检索文件并输出它们容易得多)。如果您对此有任何经验或想法(包括实现此集成的其他潜在方法),请告诉我。

您可能希望使用1,使用自定义源(您的站点)的cloudfront发行版。CSS/Javascript将自动工作,前提是它们使用的路径没有域名。但在我看来,引用内容似乎有问题。除非我误解了什么,否则根据亚马逊的文章,CloudFront仅在您明确地将其引用为qwerty.CloudFront.net/images/image.jpg时使用。这是正确的,但是,例如css文件将引用与其自身相关的图像。如果css文件请求image/path/to/image.jpg,并且您通过cloudfront请求css。浏览器也会通过cloudfront请求图像。哦,我明白了!是的,这实际上会有所帮助,但许多其他路径,例如动态生成的HTML中引用的图像,仍将指向原始服务器。我将尝试运行一些测试,并检查301重定向将产生多大的不同。