【问题标题】:How to set hostHeader correctly for subdomains?如何为子域正确设置 hostHeader?
【发布时间】:2012-01-12 18:36:11
【问题描述】:

我已经创建了两个这样的网站:

<Sites>
  <Site name="WebRole" physicalDirectory="./WebRole">
    <Bindings>
         <Binding name="Endpoint1" endpointName="HttpEndpoint" />
    </Bindings>
  </Site>   
  <Site name="MySite" physicalDirectory="./MySite">         
      <Bindings>                     
         <Binding name="Endpoint" endpointName="HttpEndpoint"  hostHeader="www.MySite.com"/>                    
      </Bindings>     
  </Site>
</Sites>

我已将 CNAME(别名)下的 DNS -> www 更改为 xxx.cloudapp.net

因此,当我输入 www.MySite.com 时,它会进入我的云应用程序,hostHeader 会被识别并进入正确的物理站点。 HostHeader 工作正常。

现在我尝试做与子域相同的事情。

<Site name="MySite" physicalDirectory="./MySite">       
        <Bindings>                   
            <Binding name="Endpoint" endpointName="HttpEndpoint"  hostHeader="sub.MySite.com"/>                     
        </Bindings>       
</Site>

在 DNS 管理器中,我没有尝试在 CNAME 中执行此操作,而是将子域屏蔽转发到同一侧的地址 xxx.cloudapp.net。

但这不起作用。它只是打开了第一个站点。为了指向第二个物理路径,似乎没有理解 HostHeader。

我错过了什么?

【问题讨论】:

  • 我认为掩蔽是问题所在。你是怎么设置遮罩的?与提琴手一起检查当您尝试访问子域时会发生什么。为什么不使用 CNAME?

标签: iis iis-7 azure dns subdomain


【解决方案1】:

据我所知,“屏蔽转发”通常通过使用帧来工作,如果是这种情况,主机标头信息将不会被转发到 Azure。

您的 DNS 主机将创建一个带有框架的网站,该框架的数据将来自 xxx.cloudapp.net 站点。由于没有转发主机标头信息,Azure 负载均衡器将无法使用备用站点。

恐怕您需要使用 CNAME 系统来显式转发主机名。

【讨论】:

  • 谢谢。你说的对。在这里提出问题后,我意识到它必须与转发做一些事情。我设法简单地输入子域的名称作为 CName 并将其转发到 xxx.cloudapp.net。现在我的子域工作。最好完全避免转发。
猜你喜欢
  • 1970-01-01
  • 2015-11-20
  • 2018-11-30
  • 1970-01-01
  • 2021-03-23
  • 1970-01-01
  • 1970-01-01
  • 2013-06-15
  • 2015-07-24
相关资源
最近更新 更多