在Cloud Service上部署多个网站的最佳做法是什么?
我有三个网站,是否可以将这三个网站部署到一个Cloud Service中? (一个Cloud Service中的三个实例)
或者我是否必须创建三个云服务并逐步部署每个网站?
谢谢
我的ServiceDefinition文件:
<WebRole name="WebRoleName" vmsize="ExtraSmall">
<Sites>
<Site name="Web" physicalDirectory="../WebSite1">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" />
</Bindings>
</Site>
<Site name="Web2" physicalDirectory="..\..\..\WebSite2">
<Bindings>
<Binding name="Endpoint2" endpointName="Endpoint2" />
</Bindings>
</Site>
</Sites>
<Endpoints>
<InputEndpoint name="Endpoint1" protocol="http" port="80" />
<InputEndpoint name="Endpoint2" protocol="http" port="81" />
</Endpoints>
<Imports>
<Import moduleName="Diagnostics" />
<Import moduleName="RemoteAccess" />
<Import moduleName="RemoteForwarder" />
</Imports>
</WebRole>
</ServiceDefinition>
通过使用该代码,WebSite1可用,WebSite2不可用,即使添加:81 我使用远程桌面验证IIS上的部署,我看到WebSite1已正确部署但WebSite2未正确部署。 WebSite2和WebSite2.Test是部署在虚拟网站目录下的两个文件夹。 通过手动复制WebSite2文件夹的内容,在Virtual WebSite目录下,我可以通过http://ID.cloudapp.net:81
访问我的网站错误是什么?为什么还为WebSite2部署了测试项目? (我检查了依赖性并且未选中)
谢谢
答案 0 :(得分:2)
你可以做任何一种方式。这真的取决于你需要做什么。如果您想在端口80上托管所有网站,例如:
http://www.mywebsite.com/site1
http://www.mywebsite.com/site2
http://www.mywebsite.com/site3
然后你可以试试这个:
或者,如果您不一定需要此实现,并且可以在不同的端口下托管您的网站,那么您可以在单独的角色下创建一个实例。
每个webrole甚至可以有一个云项目,例如,如果你想拥有一个测试管理网站来控制你的项目,这个项目不应该包含在生产中,你可以拥有2个云项目:1个所有的生产项目实例和1与您的测试管理网站,您需要时部署。
答案 1 :(得分:0)
您必须手动修改Azure项目的.csdef文件,才能将多个站点添加到云服务中。 Wade Wegner posted a good article on how to do so。请注意,每个站点都必须具有唯一的主机头。