从自定义域使用反向代理和 SSL 访问 Service Fabric

Accessing Service Fabric with reverse proxy and SSL from custom domain

通过关注许多 docs/tutorials 我在我的 SF 中使用内核和反向代理实现了 SSL。 我成功了,但接入点 Url 如下:https://mycluster.westeurope.cloudapp.azure.com:19081 在我实施 https 之前,我有一个 CNAME mycustomdomain.com 重定向到 mycluster.westeurope.cloudapp.azure.com,它工作正常。 所以现在,我想知道是否有办法调用 http://mycustomdomain.com 并访问实际的 Uri。例如,有什么方法可以通过 probes/lbrules 实现吗?或者我是否必须实施应用程序网关或使用 API 管理或其他方式?

编辑:LBRules+Probes

AppPortProbe : 44338 (backend ssl port in the SF)
FabricGatewayProbe : 19000
FabricHttpGatewayProbe : 19080
SFReverseProxyProbe : 19081

[Rule : Probe]
[AppPortLBRule (TCP/80 to TCP/19081) : 19081]
[LBHttpRule (TCP/19080) : 19080]
[LBRule (TCP/19000) : 19000]
[LBSFReverseProxyRule (TCP/19081 to TCP/44338) : 44338]

你的问题太笼统了,问题太多可能会带来很多答案,我会尝试用几个选项来回答:

在您的情况下,要访问相同的 url,您应该改用 https://mycustomdomain.com:19081

这里的问题是,当您设置集群时,集群使用的证书仅对域有效 'mycluster.westeurope.cloudapp.azure.com' 在您的情况下,您的域在 SF 使用的证书中无效,它将一旦你向它提出任何请求就会失败。

您可以跳过浏览器上的证书验证错误并继续。在您的应用程序中,您也可以这样做,问题是这样做不是一种友好的方式。

为了能够在没有任何冲突的情况下使用域,您必须注册为您拥有的域创建的自己的证书。

因为您使用的是反向代理,所以您还必须在集群配置中定义证书,查找:reverseProxyCertificate in this link

使用 SSL 部署应用程序会发生类似的事情,但在您的应用程序中,您可以定义要在启动时使用的证书,在集群中,您必须在集群配置中定义它。

您可以在此处找到更多信息: Manage service fabric cluster security certificates

如果问题出在端口上,您有两个选择:

  1. 在负载均衡器中创建一个'Port forwarding'规则,转发任何 在端口 80 中请求到端口 19081。您可以找到 here 如何使用 powershell 做到这一点。

  2. 更新cluster/service配置监听端口 80 而不是 19081。check it here

转到 godaddy 或您使用的任何域名提供商,然后将转移添加到您的 azure 域:https://mycluster.westeurope.cloudapp.azure.com