从 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-reverseproxy

ServiceMnifest.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的图标颜色?

[转帖]理解k8s 的 Ingress

从 Azure VM 访问 Azure 存储,无需出站 Internet

从 Internet 从 Amazon E2C 访问 Geoserver

VPN的端口号是多少?

无法从 Internet 访问 NodeJs 服务器