我正在尝试为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请求都不应该转到该实例。我无法弄清楚我在这里做错了什么。
提前致谢
答案 0 :(得分:1)
LoadBalancerProbe架构不支持&#39; https&#39;作为协议 - https://msdn.microsoft.com/en-us/library/azure/jj151530.aspx
这就是探针停止工作的原因。
除了测试你的证书之外,你为什么还想要这两种探测器呢?
我没有查看是否可以更改探针的端口以测试您的https连接 - 也许这会有效?
-Mikkel