繁体   English   中英

我的 s3 存储桶如何使用 nginx 在不同文件夹中托管多个网站?

[英]How can my s3 bucket host multiple websites in different folders using nginx?

我在亚马逊上有一个 s3+Cloudfront 解决方案。 我想在存储桶内的不同文件夹中托管不同的网站,并以以下两种方式之一访问它们:-子域-> mywebsite1.mydomain.com 或-路径-> www.mydomain.com/mywebsite1

我读到基于 nginx 的代理可以解决我的问题。 这是真的吗? 是否有可能在 s3 上获得 nginx?

您可以使用在EC2中运行并充当存储桶前面的反向代理的Nginx(或HAProxy)来做到这一点,是的,但是,如果您还不熟悉如何配置它,那么使用CloudFront可能会更简单。第二次。

这里的解决方案是为每个网站子域创建一个单独的分发。

假设该存储桶名为example.com,并且位于us-west-2区域,请验证您是否已在该存储桶上启用了网站托管,然后找到该存储桶的网站端点(在本例中为示例)。 com.s3-website-us-west-2.amazomaws.com。

对于subdomain1.example.com,其内容将位于example.com存储桶中的subdomain1/ 因此,您将为此子域创建一个新的CloudFront发行版,将CloudFront发行版配置为subdomain1.example.com作为备用域名。 对于原始服务器,请使用上述存储桶网站端点主机名(无路径-仅主机名)。 然后,将原始路径配置为/subdomain1 请注意,有一个斜杠,但没有一个斜杠。

现在,当this发行版看到对(例如) /images/cat.jpg的请求时,会将其发送到S3 ...,但是在此之前,它将在请求上加上Origin路径,并向存储桶询问/subdomain1/images/cat.jpg

将subdomain1的DNS指向新的CloudFront发行版,您将拥有所需的内容-一个子域,其内容位于存储桶中的路径下。

对每个子域重复此操作。 使用SDK或CLI之一可以轻松地自动执行此步骤。

最终您可能需要请求增加允许您的帐户创建的CloudFront分配数量,因为默认值为200,但这是一个简单的过程,只要您能够描述用例即可。

当然,在我看来,您这样做的原因可能与每个帐户的100个存储桶限额有关,但是该限额不再是固定限额 AWS现在将允许您请求也增加此限制。

您可以使用单个 S3、单个 CloudFront 分配和非常简单的 Lambda@Edge - https://opsdocks.com/posts/multiple-websites-one-s3/ 来完成此操作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM