3

在云服务上部署多个网站的最佳实践是什么?

我有三个网站,是否可以将这三个网站部署到一个云服务中?(一个云服务中的三个实例)

还是我必须创建三个云服务并分别部署每个网站?

谢谢

我的服务定义文件:

  <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 文件夹的内容,我可以通过 http://ID.cloudapp.net:81 访问我的网站

有什么错误?为什么还为 WebSite2 部署了 Test 项目?(我检查了依赖关系,但没有选择)

谢谢

4

2 回答 2

2

你可以做任何一种方式。这真的取决于你需要做什么。如果您想将所有网站托管在同一 url 下的端口 80 上,例如:

http://www.mywebsite.com/site1
http://www.mywebsite.com/site2
http://www.mywebsite.com/site3

那么你可以试试这个:

http://kellyhpdx.wordpress.com/2012/04/11/deploying-multiple-web-applications-to-a-single-azure-instance-and-applying-web-config-transforms-correctly/

或者,如果您不一定需要此实现并且您可以在不同的端口下托管您的网站,那么您可以在单独的角色下创建一个实例。

每个 webrole 甚至可以有 1 个云项目,例如,如果您想拥有一个测试管理网站来控制您的项目,该项目不应该包含在生产中,您可以有 2 个云项目:1 个包含所有生产实例,1 个使用您在需要时部署的测试管理网站。

于 2013-03-05T16:25:54.383 回答
0

您必须手动修改 Azure 项目的 .csdef 文件,才能将多个站点添加到云服务中。Wade Wegner 发表了一篇关于如何做到这一点的好文章。请注意,每个站点都必须具有唯一的主机标头。

于 2013-03-05T18:07:16.317 回答