2017-03-15 58 views
0

問題:如何配置IIS ARR來執行ProxyPass?

需要到代理通請求,只有模式相匹配:mywebsite.com/two-letter-country-code例如mywebsite.com/es/mywebsite.vendor.com/es這第二個網址是將返回已翻譯內容的第三方供應商。

進展中的工作:

IIS本身不支持的ProxyPass所以我安裝「應用程序請求路由(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,「服務器場」現在可用於配置,但不知道是否有什麼我需要在那裏做。

回答

0

1.我的重寫理解是否正確?

沒有,因爲我想匹配兩個字母的國家代碼啪應該是:

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

而下操作屬性的重寫URL應該是:

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

{R :0}將是指定模式的反向引用,因此mywebsite.com/es/的傳入請求將被代理傳遞,因爲mywebsite.vendor.com/es爲{R:0} = es/ cted

2.我必須配置服務器場嗎?

不需要在服務器上進行任何特殊的配置農場讓轉發代理工作。

我正在轉發請求到的第三方服務,要求主機頭是服務器在這種情況下轉發請求mywebsite.com,但最終他們正在接收mywebsite.vendor.com,來完成此操作您必須將屬性preserveHostHeader設置爲true,這可以在配置編輯器