从 Internet 访问 Service Fabric
Posted
技术标签:
【中文标题】从 Internet 访问 Service Fabric【英文标题】:Reach Service Fabric from internet 【发布时间】:2018-11-24 04:00:53 【问题描述】:我正在使用 Microsoft Azure Service Fabric,但在从 Internet 访问服务时遇到了一些问题。
我的情况:
我创建了 Service Fabric 群集: Windows Server 2016 数据中心。 节点类型计数:1。 自定义端点:空。 已标记“启用反向代理”。 我的所有服务都是基于 .NET Core 2.1、REST API 开发的。使用 Web 浏览器,所有服务都可以在本地正常运行(使用 Service Fabric 本地集群和 Azure 存储模拟器或 Azure 存储)。然后我将应用程序发布到 Azure 集群,但我无法从 Internet 访问任何服务。
问题
如何设置环境以便从 Internet 访问服务?
我阅读了一些文档:
https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-connect-and-communicate-with-services https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reverseproxyServiceMnifest.xml 文件中的一项服务具有以下配置:
<Endpoint Protocol="http" Name="ServiceEndpoint" Type="Input" Port="8939" />
所以,我在负载均衡器中添加了以下配置:
运行状况探测:添加了 8939 端口的配置。 负载平衡规则:使用之前的运行状况探测配置添加了 8939 => 8939 TCP 直通配置。但是当我尝试从浏览器访问它时,我得到了超时。
欢迎提出任何建议。
问候,
阿提利奥
【问题讨论】:
您是否尝试通过反向代理地址http://[FQDN]:[ReversPoxyPort]/[ApplicationName]/[ServiceName]/[Controller]
访问您的API?
【参考方案1】:
因此,如果您启用了反向代理,并且想要使用端口 8939 上的端点并不有趣,因为您应该使用代理 url 访问反向代理
正如 cmets 中所指出的,格式是 http://[FQDN]:[ReversPoxyPort]/[ApplicationName]/[ServiceName]/[Controller]
,通常端口是 19081,所以 url 变成了 myawesomeservicefabric.westeurope.cloudapp.azure.com:19081/FabricApp1/Service1/Values
之类的东西
与所有其他事情一样,应在负载均衡器中使用探测和规则配置端口。
我不确定门户现在对集群做了什么,但在某些时候它配置了一个网络安全组,这也可能是您的问题的原因。
【讨论】:
请注意,使用门户创建集群时,没有部署 NSG。【参考方案2】: RDP into 机器并在 localhost 上测试端点。如果它不起作用,则可能是应用程序错误。验证防火墙设置,以获取端口 8939 上传入流量的规则。
Enable logging 在 Azure 负载均衡器上查看运行状况探测是否检测到端点。
【讨论】:
以上是关于从 Internet 访问 Service Fabric的主要内容,如果未能解决你的问题,请参考以下文章
如何使用主题通用更改AppBar的文本颜色,FAB的图标颜色?
从 Azure VM 访问 Azure 存储,无需出站 Internet