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

问题描述

希望有人能帮助我。

这是我要实现的方案:

服务器A已安装IIS,并托管一个Web应用程序“ mysite.com”和一些Web API。 服务器B具有作为Windows服务托管的.NET Core Web API。

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

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

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

任何想法都会受到赞赏。

希望我的问题很清楚,否则请告诉我,我会尝试重新表述。

解决方法

将kestrel和iis放在同一服务器上并不是necesarray。

您可以使用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