IIS反向代理到虚拟专用IP
我正在尝试使用IIS 7.5将特定端口上的代理传入请求反转到绑定到VirtualBox虚拟机专用IP上的端口的Docker容器,以便我的应用程序可以访问局域网上的外部主机。
请假定以下几点:
- 我在Windows 7中运行Docker与b2d图像
-
docker machine
收到一个虚拟的私人IP地址,例如192.168.99.100
,这只能parsing主机。 - 我有一个在
rabbitmq:3-management
映像上构build的容器,pipe理门户绑定到我的虚拟机的默认网关上的端口32771 - 我希望通过networking向
http://mymachine:32771
发送请求,以通过IIS 7.5为我的虚拟机中的端口32771反向代理,并显示RabbitMQpipe理门户,如果我导航到http:192.168.99.100:32771
任何人都可以告诉我的入站和出站重写规则的例子,我需要做到这一点?
这是我迄今为止基于我在IIS反向代理上find的稀疏样本而尝试的,并且将其放在我的inetpub/wwwroot
的web.config中,但规则不适用(即使在iisreset
)
请注意,在我的configuration下面,我正在寻找RP包含“兔/” – 不是特定的端口 – 但它不代理任何请求。
编辑:[注意]我也试过
http://rabbit.(my-machine-name?)(/+?.*)?$|(.*)/rabbit(/+?.*)?$
捕获任何东西来到我的机器上的rabbit.
子或者/rabbit
path。 我validation了捕获规则,但RP仍然没有代理。
<rewrite> <rules> <rule name="RP requests for Rabbit to virtual private IP" stopProcessing="false"> <match url="(.*)rabbit/(.*)" /> <conditions> <add input="{CACHE_URL}" pattern="^(https?)://" /> </conditions> <action type="Rewrite" url="{C:1}://192.168.99.100:32771/{R:1}" /> <serverVariables> <set name="HTTP_ACCEPT_ENCODING" value="" /> </serverVariables> </rule> </rules> <outboundRules> <rule name="RP requests from Rabbit to outbound" preCondition="ResponseIsHtml"> <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^http(s)?://192.168.99.100:32771/(.*)" /> <action type="Rewrite" value="/rabbit/{R:1}" /> </rule> <preConditions> <preCondition name="ResponseIsHtml"> <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" /> </preCondition> </preConditions> </outboundRules> </rewrite>
在过去,我只是站起来Apache和mod_proxy
为简单和文档,但我更喜欢知道如何在IIS中实现这一点。