Azure Webrole的自定义负载平衡器探针未按预期用于Https端点

时间:2015-12-23 12:47:21

标签: azure azure-web-roles

我正在尝试为azure webrole设置自定义负载平衡器探针(2个实例)。我在ServiceDefinition.csdef文件中进行了以下更改:

<ServiceDefinition>

    <LoadBalancerProbes>
    <LoadBalancerProbe name="MyLoadBalancerProbe" protocol="http" path="/api/infrastructure/healthprobe"/>
    </LoadBalancerProbes>

<WebRole>

...

<Endpoints>
      <InputEndpoint name="Endpoint1" protocol="https" port="443" certificate="mycertificate" />
      <InputEndpoint name="Endpoint2" protocol="http" port="80" loadBalancerProbe="MyLoadBalancerProbe"/>
</Endpoints>

</WebRole>
</ServiceDefinition>

我可以看到负载均衡器探测器向终端发送http get请求&#34; / api / infrastructure / healthprobe&#34;在IIS日志中。

当我开始从其中一个实例发送http状态代码403而不是200时,我可以看到来自浏览器的所有http请求只会转到其他实例,但所有https请求仍然会转到这两个实例。

然后我更新了https的InputEndpoint

<InputEndpoint name="Endpoint1" protocol="https" port="443" certificate="mycertificate" loadBalancerProbe="MyLoadBalancerProbe"/>

然后自定义负载均衡器探针停止向两个实例发送任何请求,http和https请求都显示连接超时。

我的要求是当任何实例将http状态403返回到本地探测时,http和https请求都不应该转到该实例。我无法弄清楚我在这里做错了什么。

提前致谢

1 个答案:

答案 0 :(得分:1)

LoadBalancerProbe架构不支持&#39; https&#39;作为协议 - https://msdn.microsoft.com/en-us/library/azure/jj151530.aspx

这就是探针停止工作的原因。

除了测试你的证书之外,你为什么还想要这两种探测器呢?

我没有查看是否可以更改探针的端口以测试您的https连接 - 也许这会有效?

-Mikkel