如何使用Apache在EC2服务器上托管我的网站,但是在同一子域下的S3上托管我的图像?

时间:2017-07-22 01:02:10

标签: apache amazon-web-services amazon-s3 amazon-ec2 amazon-cloudfront

所以我的网站托管在运行apache的EC2服务器上。一切都很好。

我遇到的问题是我希望我的图像托管在S3上(并且可能在CloudFront上缓存),而不是在我的EC2服务器上,但是希望它们都可以在同一个域/子域下访问。

例如,我的网站是www.helloworld.com。我想在www.helloworld.com/images/foobar.png访问我的图片。我想foobar.png托管在S3而不是我的每台EC2服务器上。我怎么能这样做呢?

我可以在AWS控制台中执行配置,还是可以在Apache中使用任何重写规则?我知道我总是可以设置一个控制器,它将从S3下载图像并将它们转发给用户,但这对我来说似乎不对。

2 个答案:

答案 0 :(得分:1)

为此,您需要在前面放置一个负载均衡器/代理来拦截所有请求并相应地分派。这可能不是一个坏主意(出于可用性原因),但图像的单独主机名也不应成为问题(它不像用户必须查看或键入这些URL)。

答案 1 :(得分:0)

使用CloudFront,您可以让CloudFront接收初始请求,然后根据路径将请求转发到您的EC2实例或S3存储桶。

例如,您可以设置以下内容:

  • ax.xaxis.set_ticks_position('bottom') ax.yaxis.set_ticks_position('left') 下的路径上使用S3原点和
  • 的CloudFront行为
  • 默认(对于其他所有内容)将转到您的EC2实例原点。