【问题标题】:Service Fabric Reverse Proxy HTTP Not Found未找到 Service Fabric 反向代理 HTTP
【发布时间】:2020-09-17 09:02:28
【问题描述】:

我有一个 SF 项目,其中有两个受 HTTPS 保护的公共服务和多个不受 HTTPS 保护的“私有”服务。

当我尝试从我的一项私人服务对我的一项公共服务进行反向代理调用时遇到问题,我收到 404 Not Found。

这些服务是用 .Net core 3.1 编写的,我使用 kestrel 作为我的 Web 服务器。

我认为问题与代理无法访问我的公共服务有关,因为 HTTPS 端口是 kestrel 服务器监听的唯一端口。

如何允许 kestrel 允许来自反向代理和公共 HTTPS 端点的 HTTP 调用?

【问题讨论】:

  • 这可能不适合您,但您可以使用 api 管理或应用程序网关之类的网络服务来卸载您的 ssl,让所有集群流量保持 http。可以使用您的 nsg 限制所有入站公共访问。
  • 谢谢@Oliver 看到我的回答。

标签: asp.net-core-mvc azure-service-fabric asp.net-core-3.1 service-fabric-stateless


【解决方案1】:

我在this question 上找到了答案。

再次重申为ServiceInstanceListener 设置唯一名称的重要性。

【讨论】:

    【解决方案2】:

    事实证明,至少对于 SF v 8.0.521.9590,反向代理不喜欢侦听器名称中的空格。当您使用空格指定 ListenerName 时,它​​会返回 404。

    // fails
    yield return new ServiceInstanceListener(CreateSoapListener, "SOAP listener");
    yield return new ServiceInstanceListener(CreateRestListener, "REST listener");
    
    http://localhost:19081/ServiceInstanceName/Suffix?ListenerName=SOAP%20listener
    
    // works
    yield return new ServiceInstanceListener(CreateSoapListener, "SOAP");
    yield return new ServiceInstanceListener(CreateRestListener, "REST");
    
    http://localhost:19081/ServiceInstanceName/Suffix?ListenerName=SOAP
    

    【讨论】:

    • 好收获
    猜你喜欢
    • 2017-09-08
    • 2017-05-31
    • 2018-02-07
    • 2021-01-11
    • 2020-05-01
    • 2018-09-28
    • 2018-04-23
    • 2017-10-16
    • 2018-11-17
    相关资源
    最近更新 更多