使用 IIS 和 Kestrel 将 HTTPS 调用重定向到 .NET Core Web API

Redirecting HTTPS call to a .NET Core Web API with IIS and Kestrel

希望有人能帮助我。

这是我要实现的场景:

服务器 A 安装了 IIS 并托管了一个网络应用“mysite.com”和一些网络 API。 服务器 B 有一个 .NET Core Web API 作为 Windows 服务托管。

当客户端向特定端口发出请求时,如“mysite.com:9091/api/get-value” 我希望 IIS 通过 HTTP 将具有相同负载的调用重新路由到“myapi:9091/api/get-value”上的服务器 B。

我想这样做的原因是因为我们已经在服务器 A 上配置了身份验证和证书,而且我们希望所有传入请求都通过主站点。

我一直在阅读关于 IIS 的反向代理,这似乎是我所需要的,但不清楚 Kestrel 下 运行 的托管应用程序是否必须在同一台物理机器上作为 IIS Web 服务器(即服务器 A),或者我可以重新路由到我想要的任何其他服务器,只要它在同一网络上即可。

如有任何想法,我们将不胜感激。

希望我的问题足够清楚,否则请告诉我,我会尝试重新措辞。

不需要在同一台服务器上同时安装 kestrel 和 iis。

您可以使用 iis URL 重写规则和反向代理将请求转发到 Kestrel 服务器:

https://techcommunity.microsoft.com/t5/iis-support-blog/setup-iis-with-url-rewrite-as-a-reverse-proxy-for-real-world/ba-p/846222

Host ASP.NET Core on Windows with IIS

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1