我们有3个面向公众的Web应用程序,我们正在迁移到Azure。所有站点都使用端口80。
选项 的
据我所知,使用Web角色时有三种不同的选择:
1。所有3个站点都在一个Web服务中托管在单个云服务中:
ServiceDefinition.csdef
2。每个站点都在单个云服务中的SEPARATE Web角色上托管:
ServiceDefinition.csdef
第3。每个站点都托管在SEPARATE云服务中的Web角色:
我还缺少其他重要的东西吗?
可能的解决方案
选项1和2的组合。
在一个云服务中托管所有内容:将它们全部发布在一起很好,因为它们都引用了一个需要在所有项目中一致更新的公共库项目。
在一个网络角色中托管两个网站:它们可以很好地缩放。
在其自己的网络角色中托管第三个网站由于大量的峰值需求,将需要自己的扩展。
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>
请确认我走在正确的轨道上?任何意见都将不胜感激。
答案 0 :(得分:4)
听起来你走在正确的轨道上。几点澄清: