混合使用AWS S3和EC2的静态和dynamic内容站点

我们正在运行Tomcat的EC2中安装Java Web应用程序。 该应用程序使用用户图片(静态内容)的文件夹 – > www.example.com/PICTURES

我们使用mod_jk从服务path/ PICTURES中排除Tomcat,所以它是Apache服务的。

我们正计划将/ PICTURES移至S3并从我们的存储桶中提供服务。

在我们的代码中,我们使用短url,例如,用户图片被定义为:/PICTURES/1.jpg

我们希望将每个来自www.example.com/PICTURES/*的电话redirect到我们的存储桶 – > example.com.s3-website-us-east-1.amazonaws.com/PICTURES

我们一直在寻找最好的策略,但似乎并不是一个统一的解决scheme。

据我所知,我们应该使用:

a)mod_rewrite:为每个静态内容创build正则expression式,我们将redirect到你的存储桶

b)代理:作为S3的代理人工作

有没有其他解决scheme? 优缺点都有什么?

Camilo创build或编辑.htaccess文件并添加行:

RewriteEngine On RewriteRule ^/PROFILES/(.+) http://pictures.example.com/PROFILES/$1 [R,L] 

做到这一点的最佳方式是使用指向S3或CloudFront的静态内容的不同域(例如static.example.com )。 代理到S3是不会买你什么,redirect将增加每个请求的额外延迟。