我正在尝试使用IIS 7.5将特定端口上的传入请求反向代理绑定到VirtualBox虚拟机私有IP上的端口的docker容器,以便我的LAN上的外部主机可以访问我的应用程序。
请假设以下内容:
docker machine
接收虚拟专用IP,例如192.168.99.100
,它只能解析为主机。 rabbitmq:3-management
映像的容器,管理门户绑定到我虚拟机的默认网关上的端口32771 http://mymachine:32771
请求通过IIS 7.5从我的虚拟机反向代理端口32771,并显示RabbitMQ管理门户,如果我导航到http:192.168.99.100:32771
任何人都可以向我展示我需要完成此操作的入站和出站重写规则的示例吗?
这是我到目前为止基于我在IIS反向代理中找到的稀疏样本所尝试的内容,我将其放在我的inetpub/wwwroot
的web.config中,但规则未适用(即使在iisreset
)之后
请注意,在我下面的配置中,我正在寻找RP包含" rabbit /" - 而不是特定的端口 - 但它也没有代理。
修改:[注意]我还尝试
http://rabbit.(my-machine-name?)(/+?.*)?$|(.*)/rabbit(/+?.*)?$
在rabbit.
子版或/rabbit
路径上捕获任何进入我机器的内容。我验证了捕获规则,但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中实现它。