1


信息:我正在开发一个内置 php 的应用程序,该应用程序有助于用户创建 HTML 模板并将它们发布到网络上。由于模板是静态的,我想使用 amazon S3 来存储它们,因为它可以托管静态网站并且总体上具有良好的基础设施对于应用程序.br/>

查询:我在将其发布到网络时遇到问题。我希望将模板作为我域上的子域发布,例如:我拥有 www.ABC.com,我要求用户命名模板,如果他将其命名为 mysite,我将他的模板发布为 mysite.ABC.com(对所有用户都类似)。现在,我可以使用putObjectFileaws s3 api 将模板存储在 S3 存储桶中,但我不确定如何创建子域(即时)并将其发布在该域上。(我想为用户自动执行该过程)。另外,我可以hosting static website使用 API 制作存储桶吗?
早些时候,我使用 cpanel 和 cpanel API 允许我们创建域并使用内容对域执行 FTP,我不清楚如何在这里实现它。

研究:到目前为止,我取得的成功是,我使用S3 控制台托管了一个站点。使用 AWS 服务,我将文件移动到bucket与用户子域同名的文件中。我现在想要存储桶端点更改为子域。

参考: 这个网站也是如此,他们创建了一个类似结构的目录并在网络上发布网站。我不知道他们是否在亚马逊上托管它,但我想实现类似的目标。希望我清楚并得到一些指导。

感谢您的关注

4

1 回答 1

3

前段时间我研究了一个类似的场景,但由于 S3 的限制,我无法为此使用 S3。

要在自定义域或子域上的 S3 上托管静态网站,您需要创建一个名称与该域匹配的存储桶。而且由于每个 S3 账户限制为 100 个存储桶,您将只能在一个账户上托管这么多域或子域。

根据您描述的用例,我怀疑这个 S3 限制也会迫使您找到另一个解决方案。

就我而言,解决方案是设置一个 EC2 实例,在重写请求后将请求代理到 S3。例如,如果有人要求:

http://mysite.abc.com/file.html

通过我们的 EC2 服务器,请求被重写并转发到 S3,如下所示:

http://ourbucket.s3.amazonaws.com/mysite.abc.com/file.html

更新:

您可以为此使用几个代理服务器,但我会推荐 nginx,因为它在我们的案例中效果很好。要开始使用,请查看以下 nginx 文档:

http://wiki.nginx.org/HttpRewriteModule
http://wiki.nginx.org/HttpProxyModule

于 2013-08-09T13:25:37.907 回答