在同一域的专用服务器中服务特定请求

时间:2020-06-03 13:52:45

标签: asp.net iis core

IIS中的Asp.net Core App具有自己的域,并在两个平衡的服务器中提供服务。

是否可以让一个特定的控制器仅在第三台服务器中但在同一域中参加?

假设http://MyApp.com/MyBusyController在第三个服务器中提供服务,而应用程序的其余部分在其他两个服务器中提供服务?

之所以这样做,是因为该控制器将执行一些繁重的操作,并且将变得非常繁忙,并且不想降低其他两台服务器的性能,但必须位于同一域中。

1 个答案:

答案 0 :(得分:0)

您可以改用ARR负载平衡。这样URL重写规则可用于管理负载平衡。

https://docs.microsoft.com/en-us/iis/extensions/configuring-application-request-routing-arr/http-load-balancing-using-application-request-routing

您可以创建默认的入站ARR_loadbalance规则,并排除对MyBusyController的请求:

  <rule name="ARR_MyWebFarm_loadbalance" enabled="false" patternSyntax="Wildcard" stopProcessing="true">
                    <match url="*" />
                    <action type="Rewrite" url="http://MyWebFarm/{R:0}" />
                    <conditions>
                        <add input="{REQUEST_URI}" pattern="MyBusyController" negate="true" />
                    </conditions>
                </rule>

然后,您可以为特定控制器MyBusyController创建反向代理规则:

https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/reverse-proxy-with-url-rewrite-v2-and-application-request-routing