我们有3个面向公众的Web应用程序,我们正在迁移到Azure.所有站点都使用端口80.
OPTIONS
据我所知,使用Web角色时有三种不同的选择:
1.在单个云服务中以一个Web角色托管的所有3个站点:
>可以通过ServiceDefinition.csdef中的hostHeader配置HTTP访问
>这是最便宜的
>要求所有项目需要同时发布
>这些网站不能单独扩展,只能作为一个整体
> 1 Visual Studio中的Cloud Service项目
2.在单个云服务中托管在SEPARATE Web角色上的每个站点:
>可以通过ServiceDefinition.csdef中的hostHeader配置HTTP访问
>每个站点都有自己的实例
>要求所有项目需要同时发布
>这些网站可以单独扩展
> 1 Visual Studio中的Cloud Service项目
3.每个站点托管在SEPARATE云服务中的Web角色上:
>每个站点都有自己的cloudapp.net DNS和IP
>每个站点都有自己的实例
>网站可以单独发布
>这些网站可以单独扩展
> Visual Studio中的多个Cloud Service项目
我还缺少其他重要的东西吗?
可能的解决方案
选项1和2的组合.
在一个云服务中托管所有内容:将它们全部发布在一起很好,因为它们都引用了一个需要在所有项目中一致更新的公共库项目.
在一个Web角色中托管两个站点:它们可以很好地扩展.
在其自己的Web角色中托管第三个站点由于大量的峰值需求,将需要自己的扩展.
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>
请确认我在正确的轨道上?任何输入将不胜感激.