Azure - 多个网站动态基于子域

Azure - multiple websites dyamically based on subdomain

我们使用 Azure 来托管我们的网站。我们 Git 为每个提交和分支设置了自定义挂钩,因此我们可以看到特定提交(或给定分支的最新版本)的快照:

目前我们正在通过 Apache VM 管理暂存环境,因为 vhosts 使它变得非常容易——我们只需将给定提交(或分支)的代码转储到适当的文件夹中。对于以上:

这可以在 Azure 网站(现在是 Web 应用程序)中完成吗?我们如何创建一些动态规则以便 IIS 将 "commit-1234" 映射到文件夹 /webroot/commit-1234/ 并将其用作相对路径的根(例如,服务器端包含)?

为每个 Azure website/app 端点配置 Git 集成时,您可以选择分支。

来自文档:"In the Continous Deployment blade, choose the organization, project, and branch you want to deploy from. When you're done, click OK."

来源:https://azure.microsoft.com/en-us/documentation/articles/web-sites-publish-source-control/

希望对您有所帮助! :)

  • 沙赫德

我可以想到两个用于实时测试部署分支的可靠选项:部署槽和虚拟应用程序

Deployment Slots

您可以为您的网站创建一个部署槽,以允许一些很酷的功能,例如 AB 测试(少量流量会进入该槽)。由于您为每个 App Service 实例而不是每个 Web App 付费,因此您无需支付任何额外费用,然后您将拥有干净的环境(例如,如果其中一项更改进行了数据库升级,您可以使用不同的模式而无需任何愚蠢的技巧)。然后你就会有一个 url 的名字,比如 {{sitename}}-{{commit}}.azurewebsites.net。您可以手动设置每个插槽或运行脚本。 WebJob running listening for your GitHub Hooks and then provisioning the staging slot. You'll want to read up on Kudu (Web App's open source deployment engine) and how Deployment Hooks 工作不会太难。

Virtual Applications

您可以部署虚拟应用程序并使用 IIS 映射它们,类似于您使用 Apache 执行此操作的方式。您可以查看 Tom's Blog,他在其中介绍了实际设置虚拟应用程序的详细信息。我认为这最终会变得更加困难,并且仍然需要手动步骤。我之所以提到它,是因为结果与您所说的非常接近。您可以将每个虚拟目录映射到特定的 URI(例如 /{{commit}}/)。

仅供参考 - 我是 Azure Web Apps 团队的项目经理。我认为第一个例子很有趣。我会帮忙并将其变成博客 post。