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

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

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

我们使用 mod_jk 来排除 Tomcat 为路径 /PICTURES 提供服务,因此由 Apache 为其提供服务。

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

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

我们希望重定向来自www.example.com/PICTURES/*到我们的存储桶 ->example.com.s3-website-us-east-1.amazonaws.com/PICTURES

我们一直在寻找最佳策略但似乎没有一个统一的解决方案。

据我所知我们应该使用:

a)mod_rewrite:为我们希望重定向到您的存储桶的每个静态内容创建正则表达式

b)代理:作为S3的代理

还有其他解决方案吗?其利弊是什么?

答案1

Camilo 创建或编辑您的 .htaccess 文件并添加以下行:

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

答案2

最好的方法是使用static.example.com指向 S3 或 CloudFront 的静态内容 (例如) 的不同域。代理到 S3 不会给你带来任何好处,重定向会给每个请求增加额外的延迟。

相关内容