IIS反向代理到虚拟专用IP

时间:2016-01-05 23:48:17

标签: iis docker reverse-proxy boot2docker

我正在尝试使用IIS 7.5将特定端口上的传入请求反向代理绑定到VirtualBox虚拟机私有IP上的端口的docker容器,以便我的LAN上的外部主机可以访问我的应用程序。

请假设以下内容:

  • 我正在使用Windows 7中的b2d图像运行docker
  • 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中实现它。

0 个答案:

没有答案
相关问题