找不到 Service Fabric 反向代理 HTTP
Service Fabric Reverse Proxy HTTP Not Found
我有一个 SF 项目,其中有两个 public 服务受 HTTPS 保护,还有多个 "private" 服务不受 HTTPS 保护。
当我尝试从我的一项私人服务对我的一项 public 服务进行反向代理调用时,我 运行 遇到了一个问题,我收到 404 Not Found。
这些服务是用 .Net core 3.1 编写的,我使用 kestrel 作为我的网络服务器。
我假设问题与代理无法访问我的 public 服务有关,因为 HTTPS 端口是 kestrel 服务器正在侦听的唯一端口。
如何允许 kestrel 允许来自反向代理和 public HTTPS 端点的 HTTP 调用?
我在这里找到了 问题的答案。
再次重申为 ServiceInstanceListener
设置唯一名称的重要性。
事实证明至少对于 SF v 8.0.521.9590,反向代理不喜欢侦听器名称中的 spaces。当您使用 space 指定 ListenerName 时,它 returns 一个 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
我有一个 SF 项目,其中有两个 public 服务受 HTTPS 保护,还有多个 "private" 服务不受 HTTPS 保护。
当我尝试从我的一项私人服务对我的一项 public 服务进行反向代理调用时,我 运行 遇到了一个问题,我收到 404 Not Found。
这些服务是用 .Net core 3.1 编写的,我使用 kestrel 作为我的网络服务器。
我假设问题与代理无法访问我的 public 服务有关,因为 HTTPS 端口是 kestrel 服务器正在侦听的唯一端口。
如何允许 kestrel 允许来自反向代理和 public HTTPS 端点的 HTTP 调用?
我在这里找到了
再次重申为 ServiceInstanceListener
设置唯一名称的重要性。
事实证明至少对于 SF v 8.0.521.9590,反向代理不喜欢侦听器名称中的 spaces。当您使用 space 指定 ListenerName 时,它 returns 一个 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