导出 (0) 打印
全部展开

为多个网站配置 Web 角色

更新时间: 2014年10月

通过使用服务定义文件 (ServiceDefinition.csdef) 中的 Sites 元素,可以配置 Web 角色以支持多个网站和 Web 应用程序。可使用 Internet Information Services (IIS) 7.0 中的网站、应用程序和虚拟目录功能来实现这一点。这些功能使 Azure 中的每个 Web 角色都能够支持多个网站和应用程序的配置。

默认情况下,使用 Sites 元素创建新项目。在 Sites 节点中,可通过添加 Site 节点来添加其他 ASP.NET 网站或 Web 应用程序。

Azure 不会在正在角色中运行的网站和应用程序之间施加安全边界。可用的唯一可配置边界为管理用户和非管理用户之间的边界。这在你考虑网站安全性时会带来一些启示。例如,如果一个用户的网站正在使用托管服务的 HTTPS 证书,则相同 Web 角色中的另一个用户的网站将能够访问该网站的 HTTPS 证书。

如果你必须在一个带多个用户的 Web 角色上承载不同的网站,则应使用 VM 角色,并配置为每个网站提供适当安全性所需的 IIS 隔离边界。

有关 IIS 如何管理网站的其他信息,请参见配置 Web 服务器以提高内容服务 (IIS 7.0)

有关 ServiceDefinition.csdef 文件中的 XML 元素的说明,请参见Azure 服务定义架构(.csdef 文件)

note备注
Sites 元素仅在 Windows Azure SDK 1.3 版或更高版本中才可用。

下列步骤假定你已安装 Visual Studio 2010 和 Microsoft Azure Tools for Visual Studio,并且已使用一个 Web 角色创建了一个云项目,你将在其中添加其他网站。

可使用以下过程在 Azure 上的一个 Web 角色中配置多个网站和 Web 应用程序。

可使用以下过程在 Azure 上的一个 Web 角色中配置其他网站。

  1. 在 Visual Studio 中,右键单击解决方案资源管理器中的解决方案,然后单击“添加”。

  2. 单击“新建网站...”。

  3. 在向导中填入相应内容以创建新的网站项目。

  4. 在解决方案资源管理器中右键单击新网站项目,然后单击“发布网站...”。

  5. 在“发布网站”对话框中,单击“确定”。

  1. 打开云项目的 ServiceDefinition.csdef 文件。

  2. SitesWebRole 元素下,复制现有 Site 元素后的以下 XML 代码。

    <Site name="web-site-name" physicalDirectory="relative-location">
      <Bindings>
        <Binding name="binding-name" endpointName="endpoint-identifier" hostHeader="custom-domain-name" />
      </Bindings>
    </Site>
    
  3. 修改 Site 元素的 namephysicalDirectory 属性以反映新网站的名称和网站项目的位置。

    Tip提示
    physicalDirectory 特性值与服务配置文件的位置是相对的。如果你复制此 XML 代码,则必须修改 physicalDirectory 特性值以反映应用程序的文件夹结构。例如,如果你的 ServiceConfiguration.csdef 文件位于 C:\projects\CloudProject\ServiceConfiguration.csdef,而包含新网站的文件夹位于 C:\projects\NewWebSite,则 physicalDirectory 属性中的相对路径将为 "..\NewWebSite"

  4. 修改 name 元素的 endpointNameBinding 特性以匹配现有网站。

  5. 修改 hostHeader 属性以指定原始终结点上的新网站的主机名。将使用主机头中的名称对新网站进行寻址以将该网站与其他网站区分开来。对于本地测试,请修改主机文件以将主机名指向环回地址 127.0.0.1。

  1. 打开云项目的 ServiceDefinition.csdef 文件。

  2. SitesWebRole 元素下,复制现有 Site 元素后的以下 XML 代码。

    <Site name="web-site-name" physicalDirectory="relative-location">
      <Bindings>
        <Binding name="binding-name" endpointName="endpoint-identifier" />
      </Bindings>
    </Site>
    
  3. 修改 Site 元素的 namephysicalDirectory 属性以反映新网站的名称和网站项目的相对位置。

  4. InputEndpoint 集合添加新 Endpoints 元素。将 name 属性修改为新值,将 protocol 属性设置为 http https,并将 port 属性设置为将用于访问新网站的端口号。

      <InputEndpoint name="new-endpoint-identifier" protocol="http-or-https" port="port-number" />
    
    
  5. 修改 name 元素的 endpointNameBinding 特性以匹配新终结点。

在创建 Web 角色时,将使用一个配置为网站的 Web 角色创建云项目。以下过程说明如何向 Web 角色添加运行同一 Web 应用程序的其他网站。

  1. 打开云项目的 ServiceDefinition.csdef 文件。

  2. SitesWebRole 元素下,复制以下 XML 代码。

    <Site name="application-name" physicalDirectory="relative-location">
      <Bindings>
        <Binding name="binding-name" endpointName="endpoint-identifier" hostHeader="custom-domain-name" />
      </Bindings>
    </Site>
    
  3. physicalDirectory 元素的 Site 特性设置为与服务配置文件相对的 Web 角色项目的路径,并将 name 特性设置为 Web 应用程序的新名称。使用 hostHeader 元素的 Binding 特性指定原始终结点上的其他网站的主机名。

  4. 对于本地测试,请修改主机文件以将主机名指向环回地址 127.0.0.1。

在创建 Web 角色时,将使用一个配置为网站的 Web 应用程序创建云项目。以下过程说明如何向 Web 角色添加虚拟应用程序。

  1. 在 Visual Studio 中,右键单击解决方案资源管理器中的解决方案,然后单击“添加”。

  2. 单击“新建项目...”。

  3. 选择 Web 应用程序模板并在向导中填入相应内容来创建新的 Web 应用程序项目。

  4. 在解决方案资源管理器中右键单击新 Web 应用程序项目,然后单击“生成”。

  1. 打开云服务的 ServiceDefinition.csdef 文件。

  2. WebRoleSites 元素下,向现有网站的 Site 元素添加 VirtualApplication 元素。在 name 特性中填入虚拟应用程序的名称,并将 physicalDirectory 特性设置为相对于服务配置文件的 Web 应用程序项目的路径。

    <Site name="Web">
       <VirtualApplication name="application-name" physicalDirectory="relative-location" /></Site>
    
  3. 若要访问虚拟应用程序,请将 name 特性的值附加到主网站的 URI。例如,如果使用 http://www.contoso.com/ 访问主网站,则将在 example 上访问名为 http://www.contoso.com/example/ 的虚拟应用程序。

另请参阅

Microsoft 正在进行一项网上调查,以了解您对 MSDN 网站的意见。 如果您选择参加,我们将会在您离开 MSDN 网站时向您显示该网上调查。

是否要参加?
显示:
© 2015 Microsoft