在 Azure Blob 存储上托管多个静态网站

Posted

技术标签:

【中文标题】在 Azure Blob 存储上托管多个静态网站【英文标题】:Hosting multiple static websites on Azure Blob Storage 【发布时间】:2021-05-05 20:38:24 【问题描述】:

我目前在 Azure Blob 存储上托管一个静态 Web 应用程序,它使用我在 Azure Key Vault 上拥有的 SSL 证书——见下图。

我的问题是托管第二个和第三个静态 Web 应用程序——它们也将拥有来自 Azure Key Vault 的自己的 SSL 证书。对于要在 Azure Blob 存储上托管的每个静态网站,是否需要单独的存储帐户?

所有文件都来自 $web 容器,我不确定是否有办法从 Azure Blob 存储上的另一个容器中提取网站内容。

【问题讨论】:

这是什么意思? “它使用我在 Azure Key Vault 上拥有的 SSL 证书” 表示我通过https访问网站。如果静态网站托管在 Azure Blob 存储上并且需要使用 SSL 证书,则证书必须存储在 Azure Key Vault 中。所以,我是说我想托管多个静态网站,这些网站都有自己的 SSL 证书,这些证书存储在我的 Azure Key Vault 帐户中。 【参考方案1】:

我是否需要为要在 Azure Blob 存储上托管的每个静态网站使用单独的存储帐户

是的,您需要添加新的存储帐户并为每个帐户创建自定义域和 SSL 证书。

这就是为什么我会提出不同的解决方案:

使用一个 Azure Front Door,向其添加一个(或多个,如果需要)自定义域。从 KeyVault 引用您的自定义 SSL 证书,或者 - 甚至更好 - 使用 FrontDoor 管理的证书。然后创建一个存储帐户并为您要托管的每个网站创建一个新容器。如果您只是将容器设为公开阅读,您甚至不需要启用静态网站即可。

然后将存储帐户添加为 Front Door 中的后端,并将不同的路由规则添加到不同的容器。路由规则可以基于路径,或者,如果您将每个站点的不同域名添加到 Front Door,则基于域。

【讨论】:

我从未使用过 Front Door,但这听起来绝对是一个可靠的解决方案。使用 Front Door 让事情顺利进行有多么容易/困难? 唯一让你头疼的就是路由部分。但除此之外,它真的很简单 如果可以的话,还有一个问题:我刚刚检查了他们的定价。入站和出站数据是有道理的,但我对按小时收费的路由规则有点困惑。你知道这是怎么回事吗? 我将其解读为“如果您为一整个月(720 小时)配置了多达 5 条规则,则这些规则每月花费您大约 21 美元

以上是关于在 Azure Blob 存储上托管多个静态网站的主要内容,如果未能解决你的问题,请参考以下文章

允许 http 和 https 指向我在 GCP 存储桶上托管的静态网站

有没有办法在 AWS S3 上托管一个静态网站而不提供公共访问权限?

如何在 Azure 上托管 html 应用程序

自动将 Azure Webapp wwwroot 目录备份到 azure blob 存储

Azure 上托管的 MVC 4 网站说我无权查看目录或页面

设置存储在 Blob 上的媒体文件的内容类型