问题描述
希望有人能帮助我。
这是我要实现的方案:
服务器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服务器:
Host ASP.NET Core on Windows with IIS
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1