如何配置IIS ARR来执行ProxyPass?

时间:2017-03-15 19:09:34

标签: iis proxy arr

问题:

需要代理仅与模式匹配的传递请求:mywebsite.com/two-letter-country-code,例如 mywebsite.com/es / mywebsite.vendor.com/es 第二个网址是第三方供应商,它将返回已翻译的内容。

正在进行的工作:

IIS本身并不支持ProxyPass,因此我安装了#34;应用程序请求路由(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:#}将返回" es"或者URL的语言。

我的问题

1。我的重写理解是否正确?

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

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

1 个答案:

答案 0 :(得分:0)

<强> 1。我的重写理解是否正确?

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

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

操作属性下的重写网址应为:

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

{R:0}将是指定模式的反向引用,因此mywebsite.com/es/的传入请求将作为代理传递,因为mywebsite.vendor.com/es {R:0} = es / 符合预期

<强> 2。我是否必须配置服务器场?

不需要在服务器场中进行任何特殊配置以使正向代理工作。

我转发请求的第三方服务,要求将主机头作为服务器转发请求,在这种情况下mywebsite.com但最终他们收到了mywebsite.vendor.com,为了实现这一目标必须将属性preserveHostHeader设置为true,这可以在配置编辑器

中找到