如何使用 Cloudfront 设置 AWS Elastic Beanstalk 以在 PHP 堆栈上托管图像和视频

Posted

技术标签:

【中文标题】如何使用 Cloudfront 设置 AWS Elastic Beanstalk 以在 PHP 堆栈上托管图像和视频【英文标题】:How to set up AWS Elastic Beanstalk with Cloudfront For Image and Video Hosting on PHP Stack 【发布时间】:2017-04-18 12:39:39 【问题描述】:

我正在尝试在 Amazon Cloud 中建立一个架构,使我能够将我的动态 php 文件托管在 Elastic Beanstalk 上,并将我的静态文件和视频内容托管在 Amazon Cloudfront CDN 上。

我目前有这个当前的文件结构,并且我已经通过 AWS 上传和部署了我的应用程序。

我也在使用自己的域名。

app/
|    index.php
|    otherfiles.php
|    
|____images/ 
|        image1.jpg 
|
|____js/
|        scripts.js
|
|____css/
|        stylesheet.css
|
|____videos/
         movie1.mp4

我还在我的 s3 存储桶中创建了一些文件夹,这些文件夹映射到应用程序中的文件夹。所以我有一个js文件夹,一个图片文件夹,电影等等。

我的问题是如何设置 S3 存储桶,以便对 mydomain.com/images/image1.jpg 的请求映射到存储桶以及我的 s3 存储桶中的文件夹和图像?

通过 Cloudfront CDN 交付的内容是否也只能通过 S3 存储桶获得?

我了解 AWS 是一个庞大的主题,但我只需要对如何实现它进行概念性概述。

提前致谢

【问题讨论】:

【参考方案1】:

为您的域设置 CloudFront 分配,并将对静态资产的请求路由到 S3 存储桶,并将对动态资产的请求路由到您的 Elastic Beanstalk 应用程序。您可以使用 CloudFront 行为功能执行路由,如 this blog post 中所述。

也是仅通过 Cloudfront CDN 交付的内容 可通过 S3 存储桶获得?

不,CloudFront 可以路由到任何端点,而不仅仅是 S3 存储桶。

【讨论】:

以上是关于如何使用 Cloudfront 设置 AWS Elastic Beanstalk 以在 PHP 堆栈上托管图像和视频的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AWS S3 网站 CloudFront 中设置别名重定向?

AWS CloudFront 为不同的主机(前端和后端)设置 cookie

使用Cloudfront而不是单个EC2实例的AWS ELB设置有什么意义?

AWS CloudFront 如何遵循 S3 存储桶重定向规则?

如何在 Lambda 函数中使用 AWS.CloudFront.Signer

使用 Cloudfront 设置 AWS ELB 而不是单个 EC2 实例有啥意义?