如何配置 IIS ARR 来执行 ProxyPass?

How to configure IIS ARR to do a ProxyPass?

问题:

需要代理传递仅匹配模式的请求:mywebsite.com/two-letter-country-code 例如 mywebsite.com/es/mywebsite.vendor.com/es 这秒 url 是第三方供应商,将 return 内容翻译。

正在进行的工作:

IIS 本身不支持 ProxyPass,所以我安装了 "Application Request Routing (ARR)" 以按照本文 https://www.iis.net/learn/extensions/configuring-application-request-routing-arr/creating-a-forward-proxy-using-application-request-routing 中的说明配置转发代理,在第 14 步配置重写规则时说要添加:

Rewrite URL: http://{C:1}/{R:0}

如果我的理解对我来说是正确的,我会想做类似

的事情
Rewrite URL: http://mywebsite.sl.vendor.com/{C:#}

{C:#} 将 return "es" 或 URL 将使用的任何语言。

我的问题

1.我的重写理解正确吗?

2。我必须配置服务器场吗?

我注意到通过安装 ARR,"Server Farm" 现在可用于配置,但不确定我是否需要在那里做任何事情。

1.我的重写理解正确吗?

不,因为我想匹配两个字母的国家代码,Patter 应该是:

^([a-z]{2}/(.*)|/[a-z]{2}$)

并且 Action Properties 下的 Rewrite URL 应该是:

https://mywebsite.sl.vendor.com/{R:0}

{R:0} 将是指定模式的 back-reference,因此对 mywebsite.com/es/ 的传入请求将被代理传递为 mywebsite.vendor.com/es {R:0}=es/ 符合预期

2。我必须配置服务器场吗?

无需在服务器场中进行任何特殊配置即可使转发代理正常工作。

我将请求转发到的第三方服务要求主机 header 作为服务器转发请求,在这种情况下 mywebsite.com 但最终他们收到 mywebsite.vendor.com,要完成此操作,您必须将 属性 preserveHostHeader 设置为 true,这可以在 Configuration Editor

中找到