我正在尝试将IISconfiguration为根据传入的主机名来代理请求。 例如,如果我的代理服务器是位于www.proxy.com的IIS服务器,那么www.google.com.www.proxy.com的请求将代理到www.google.com
我试图设置一个带有URL重写规则的反向代理,将*localhost*重写为{R:1} {R:2},但我没有任何运气。 从我读过的内容来看,只有在指定了我想要提前与哪个服务器进行交互的情况下才有可能,但在我的情况下,这是不可能的(服务器在EC2上,并且一直被dynamic地创build和终止)。
这确实不难。 无论是明智的做法,通过几乎允许任何域名www。 .com.www.proxy.com代理www。 .com是另一回事。 您应该有某种机制来限制您想要代理的域。
但无论如何,从技术上讲,您必须使用以下URL重写规则(安装了ARR模块)来设置反向代理:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="ReverseProxy" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{CACHE_URL}" pattern="^(https?)://(.*?)\.www\.proxy\.com" /> </conditions> <action type="Rewrite" url="{C:1}://{C:2}/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
但是你真的应该添加更多的条件来限制你允许代理的域名。