gpt4 book ai didi

.net - Web 角色和云服务的多站点策略

转载 作者:行者123 更新时间:2023-12-04 04:25:59 25 4
gpt4 key购买 nike

我们有 3 个面向公众的 Web 应用程序,我们正在将其迁移到 Azure。所有站点都使用端口 80。

选项

据我了解,使用 Web 角色时有三种不同的选项:

<强>1。所有 3 个网站托管在单一云服务中的一个 Web 角色中:

  • 可以通过 ServiceDefinition.csdef 中的 hostHeader 配置 HTTP 访问
  • 这是最便宜的
  • 要求所有项目需要同时发布
  • 网站无法单独扩展,只能作为一个整体进行扩展
  • Visual Studio 中的 1 个云服务项目

<强>2。每个站点托管在单个云服务中的单独 Web 角色上:

  • 可以通过 ServiceDefinition.csdef 中的 hostHeader 配置 HTTP 访问
  • 每个网站都有自己的实例
  • 要求所有项目需要同时发布
  • 网站可以单独扩展
  • Visual Studio 中的 1 个云服务项目

<强>3。每个站点托管在单独的云服务中的网络角色上:

  • 每个站点都有自己的 cloudapp.net DNS 和 IP
  • 每个网站都有自己的实例
  • 网站可以单独发布
  • 网站可以单独扩展
  • Visual Studio 中的多个云服务项目

还有什么我遗漏的重要内容吗?

可能的解决方案

选项 1 和 2 的组合。

将所有内容托管在一个云服务中:将它们全部发布在一起很好,因为它们都引用一个公共(public)库项目,该项目需要在所有项目中一致更新。

在一个网络角色中托管两个网站:它们可以很好地一起扩展。

在其自己的网络角色中托管第三个网站由于大量的峰值需求,将需要自己的扩展。

ServiceDefinition.csdef:

<ServiceDefinition name="WebTestCloudService.Test" xmlns="..." schemaVersion="2012-10.1.8">
<WebRole name="AzureWebTest1" vmsize="Small">
<Sites>
<Site name="AzureWebTest1">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="test1.mydomain.com" />
</Bindings>
</Site>
</Sites>
<Endpoints>
<InputEndpoint name="Endpoint1" protocol="http" port="80" />
</Endpoints>
</WebRole>
<WebRole name="AzureWebTest2" vmsize="Small">
<Sites>
<Site name="AzureWebTest2">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="test2.mydomain.com" />
</Bindings>
</Site>
<Site name="AzureWebTest3" physicalDirectory="..AzureWebTest4">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="test3.mydomain.com" />
</Bindings>
</Site>
</Sites>
<Endpoints>
<InputEndpoint name="Endpoint1" protocol="http" port="80" />
</Endpoints>
</WebRole>
</ServiceDefinition>

请确认我的方向正确吗?任何意见将不胜感激。

最佳答案

听起来您走在正确的道路上。澄清几点:

  • 请记住,在定义要在同一部署中的单独 Web 角色中运行的站点时,您需要为每个 Web 角色使用单独的端口号。如果您希望所有网站都位于端口 80 上,则需要选项 #1 或 #3
  • 在单个部署中,虽然您需要一次发布所有角色代码,但您可以选择更新特定角色而不是所有角色。
  • 您还可以研究独立于您的部署来部署网络代码的替代技术,例如将您的网站压缩存储在 blob 中,然后根据需要下载/解压缩/安装网站,而无需重新部署。
  • 您还可以将所有静态内容保存在 Blob 存储中,并随时更新这些对象,并且零重新部署。

关于.net - Web 角色和云服务的多站点策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17464912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com