IIS ARR + 请求过滤?

IIS ARR + Request Filtering?

我们希望使用 IIS 应用程序请求路由 (ARR) 为我们的 asp.net 站点实现负载平衡。加权循环似乎是一个不错的起点,但我们想做一些定制的事情,我们希望有人能帮助我们指明正确的方向。

我们希望能够将某些请求路由到特定服务器,但让其余请求像循环法一样运行到剩余的负载平衡服务器。例如,考虑以下五个进入我们的负载均衡器的请求 运行 ARR:

1.) https://example.com/api/myendpoint/36321
2.) https://example.com/somepage.aspx
3.) https://example.com/documents/upload.aspx
4.) https://example.com/orders/orderdetails.aspx
5.) https://example.com/anotherpage.aspx?p1=432

我们希望根据 url 中的“/api/”将请求 #1 路由到我们的 api 服务器。我们希望根据 url 中的“/documents/”将请求 #3 路由到我们的文档服务器。其他三个请求应遵循循环法并相应地分配给我们的通用负载平衡服务器。

这可以使用 ARR 吗?如果是这样,我们将如何配置它?如果没有,可以使用哪些工具来完成此操作?

谢谢!

如果您想纯粹使用 IIS,那么我会遵循以下模式。诀窍是让你的规则设置,但通常你需要 3 重写:

  1. 编写一条匹配 ./api/. 的规则并将其路由到您的 api 服务器。
  2. 编写匹配 ./documents/. 的规则并将其路由到您的文档服务器。
  3. 写一个不匹配的规则 ./documents/. ./api/. 并指向它到您的循环服务器场。对于循环赛,您应该阅读这篇文章:http://www.iis.net/learn/extensions/configuring-application-request-routing-%28arr%29/http-load-balancing-using-application-request-routing and this article: http://www.iis.net/learn/extensions/configuring-application-request-routing-(arr)/define-and-configure-an-application-request-routing-server-farm

要了解有关编写规则的更多信息,请参阅:http://www.iis.net/learn/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module