同一区域中的Azure Traffic Manager云服务(多个网站)和App Services

时间:2018-06-29 11:03:16

标签: azure-web-sites azure-cloud-services azure-traffic-manager

因此,在当前情况下,我们正在使用Cloud Services为两个网站提供服务,以及一些工作人员角色(此问题范围之外的工作人员角色)。我们的用户来自同一国家/地区,因此我们在同一地区有很多环境(5个云服务环境)。

我们正在朝着应用程序服务的方向发展,我们还希望将停机时间降至最低。我们设计的策略是在每个环境上配置两个应用程序服务(每个网站一个),并使用两个流量管理器(每个网站一个)与两个端点(优先级1:现有的云服务,优先级2:新的应用程序服务)

现有的DNS / CNAME配置类似于以下内容

dev-env.example.com指向网站1 dev-envapi.example.com指向网站2

和现在的新配置中,我添加了两个流量管理器,其中一个如下 dev-env.trafficmanager.net端点1指向云服务 dev-env.trafficmanager.net endpoint2指向应用程序服务(网站)

但是如何使用trafficmanager配置第二个网站?

请在下面找到我们现有的云服务webrole和网站配置

<WebRole name="App.WebRole" vmsize="Medium" enableNativeCodeExecution="true">
<Sites>
  <Site name="Web">
    <Bindings>
      <Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="dev-env.example.com" />
      <Binding name="Endpoint2" endpointName="Endpoint2" hostHeader="dev-env.example.com" />
    </Bindings>
  </Site>
  <Site name="WebApi" physicalDirectory="WebRole.Api\azure.publish">
    <Bindings>
      <Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="dev-envapi.example.com" />
      <Binding name="Endpoint2" endpointName="Endpoint2" hostHeader="dev-envapi.example.com" />
    </Bindings>
  </Site>
</Sites>
<Endpoints>
  <InputEndpoint name="Endpoint1" protocol="http" port="80" />
  <InputEndpoint name="Endpoint2" protocol="https" port="443" certificate="https" />
</Endpoints>
<ConfigurationSettings>
  <Setting name="AzureSubscriptionId" />
  <Setting name="AzureWebSchedulerCloudServiceName" />
  <Setting name="AzureWebSchedulerJobCollectionMaxQuota" />
  <Setting name="AzureWebSchedulerCertNameConvention" />
  <Setting name="ExternalUrl" />
</ConfigurationSettings>
<LocalResources>
</LocalResources>
<Certificates>
  <Certificate name="Windows Azure Tools" storeLocation="LocalMachine" storeName="My" />
  <Certificate name="https" storeLocation="LocalMachine" storeName="My" />
</Certificates>
<Imports>
</Imports>
<Startup>
  <Task commandLine="Role_Start\Bootstrap.bat" executionContext="elevated" taskType="simple">
    <Environment>
      <Variable name="EMULATED">
        <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
      </Variable>
    </Environment>
  </Task>
</Startup>

1 个答案:

答案 0 :(得分:1)

因此,它开箱即用,我们只需要在webrole中为每个网站添加一个流量管理器配置文件。 使用Webrole网站中定义的URL端点作为目标流量管理器配置文件的目标,我们很高兴。

具有两个Azure终结点(一个云服务和一个应用程序服务)的流量管理器配置文件,假设 dev-env ,dev-env.example.com以dev-env.trafficmanager.net为目标。 流量管理器配置文件的端点1的优先级1以 dev-env.cloudapp.net(云服务Azure端点)为目标,端点2的优先级2以dev-env.azurewebsites.net为目标。 / p>

另一个具有两个Azure终结点(一个云服务和一个应用程序服务)的流量管理器配置文件,以 dev-envapi 为目标,将dev-envapi.example.com定位为dev-envapi.trafficmanager.net。 流量管理器配置文件的端点1的优先级1以 dev-env.cloudapp.net(云服务Azure端点)为目标,端点2的优先级2以dev-envapi.azurewebsites.net为目标。 / p>

请注意,两个流量管理器配置文件的云服务端点相同。

因此,当我们想要实际切换时,我们只是关闭了云服务。从而减少停机时间。另外,我们没有更改数据库,存储帐户或任何其他资源,这是我们能够将停机时间保持在最低限度的方法。