IIS 中的反向代理到本地 TomCat

IIS 中的反向代理到本地 TomCat

IIS 有多个网站:

  • 域名1.com
  • a.domain2.com
  • b.domain2.com

还有一个 TomCat 在运行

localhost:8087

挑战在于如何将 TomCat 公开为

b.domain2.com

我做了什么:

  • 在 IIS 中的 ARR 中启用代理
  • 在 b.domain2.com 上添加了反向代理 URL 重写规则

    <rewrite>
        <rules>
            <rule name="ReverseProxyInboundRule1" stopProcessing="true">
                <match url="(.*)" />
                <action type="Rewrite" url="http://localhost:8087/{R:1}" />
            </rule>
          </rules>
        <outboundRules>
            <rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1" >
                <match filterByTags="A, Form, Img" pattern="^http(s)?://localhost:8087/(.*)" />
                <action type="Rewrite" value="http{R:1}://femiscan.a2itsolutionsllc.com/{R:2}" />
            </rule>
    
            <preConditions>
                <preCondition name="ResponseIsHtml1">
                    <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
                </preCondition>
            </preConditions>
        </outboundRules>
    </rewrite>
    

我所看到的:

本地 如果我导航到

http://b.domain2.com 

我的浏览器显示 TomCat 网站为

http://localhost:8087 

(为什么?)

外部如果我在 Chrome 中导航到

http://b.domain2.com 

它试图通过隧道到达

http://localhost:8087

如果我在 IE 中导航,它会返回 500 错误(Fiddler:HTTP/1.1 500 URL 重写模块错误。)

问题:我做错了什么?可以解决吗?如何解决?

答案1

您的操作设置为“重写”,因此它正在重写 URL。

在 IIS 管理器中:

  • 右键单击“服务器场”,单击“创建服务器场”。为其命名。
  • 在“服务器名称或地址”字段中输入 Tomcat 实例的完全限定域名
  • 点击“高级设置...”,展开“applicationRequestRouting”,将httpPort更改为8087
  • 当提示创建重写规则时单击“是”
  • 单击窗口左侧窗格中“服务器场”下新创建的场
  • 在服务器场功能查看页面打开“路由规则”
  • 单击右侧窗格上的“URL 重写...”链接
  • 删除旧的 Tomcat 重写规则
  • 单击右侧窗格顶部的“添加规则...”,选择“空白规则”
  • 命名
  • 在“匹配 URL”窗格中:
    • 请求的 URL:Matches the Pattern
    • 使用:Regular Expressions
    • 图案:*
  • 展开条件窗格,单击“添加”
    • 条件输入:{HTTP_HOST}
    • 检查输入字符串是否:Matches the pattern
    • 图案:b.domain2.com
    • 查看Ignore Case
  • 在操作窗格中:
    • 动作类型:Route to Server Farm
    • 方案:http://
    • 服务器场:(the name of your server farm)
    • 小路:{R:1}笔记:这可能需要一些调整,但从你的例子来看它应该可以工作)
  • 单击右侧窗格中的“应用”,您的

相关内容