在Cloud Service Definition文件中,我们为Cloud Service指定端点。我知道这用于配置Azure自己的网络负载均衡器以及实例自己的Windows防火墙。这只需要端口号(对于负载均衡器)和/或进程可执行文件名(对于Windows防火墙,如果使用基于进程的规则而不是基于端口号的规则)。
但每个protocol="http|https|tdp|udp"
属性值的重要性是什么?
我的困惑是因为tdp
和udp
都是传输层协议 - 但这足以配置负载均衡器和防火墙(因为它们可以选择性地阻止非TCP或非UDP流量(视情况而定)。但protocol="http"
或protocol="https"
究竟做了什么?
HTTP和HTTPS都是在TCP之上运行的应用程序层协议 - 所以如果我为WebRole指定protocol="tcp"
那么这应该适用于HTTP和HTTPS流量,对吗?
但是,如果我有一个定义了protocol="https"
端点的工作者角色(不是Web角色)云服务,会发生什么?如果我的Worker Role代码创建了一个监听该特定端口的Socket
会发生什么?传入连接会发生什么?
负载均衡器是否要求传入连接符合HTTP或HTTPS协议规范?如果它是一个多语言协议或看起来类似HTTP的其他协议但实际上是应用定义的(例如SIP)会怎样?
如果我指定https
我还必须指定证书名称 - 所以这必须意味着负载均衡器负责解密TLS通信,然后将明文转发到Web角色或工作者角色套接字?
如果我有一个私有使用HTTP.sys
(或IIS Hostable Web Core)或自托管ASP.NET Core的工作者角色,例如,如何将其配置为{{1}元素不可用?
使用<Sites>
或protocol="https"
会导致protocol="http"
的任何配置吗?