我们正在运行 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 不会给你带来任何好处,重定向会给每个请求增加额外的延迟。