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. 子或者/rabbitpath。 我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中实现这一点。