【问题标题】:Reverse Proxy on WindowsWindows 上的反向代理
【发布时间】:2010-12-06 17:22:18
【问题描述】:

我有一个 Web 服务器,它响应端口 80 上的多个不同站点。目前,IIS 通过主机标头映射到各个站点,但我希望能够在端口 80 上为托管的其他 Web 应用程序提供服务在 Jetty 或 Tomcat 中。 IIS 通过抓取所有端口 80 流量来防止这种情况发生。

我基本上需要一个反向代理来将端口号更改为另一个应用程序堆栈可以监听的端口号。我正在研究 nginx,但它似乎还没有准备好在 Windows 上的黄金时间。最终我可能会专门为此设置一个 Linux 机器,但现在我对一个可以在同一个机器上运行的解决方案感兴趣。

我真正需要的只是一些非常轻便的东西,它大多只匹配主机名/端口并允许重写端口。有人有什么建议吗?

【问题讨论】:

    标签: windows iis nginx jetty reverse-proxy


    【解决方案1】:

    如果您在 IIS 7 或更高版本中运行,您可以为此使用应用程序请求路由:http://www.iis.net/download/ApplicationRequestRouting

    【讨论】:

    • 很遗憾这是 IIS 6。应用程序请求路由是否允许路由到非 IIS 侦听器(例如 Apache Tomcat)?
    • 这里是如何使用 Tomcat/IIS 7 设置 ARR 的指南:iisadmin.co.uk/?p=326
    • ARR 确实支持路由到任何 HTTP 端点(IIS7、IIS 6、Tomcat、Apache 或其他),但是 ARR 只能在 IIS 7 及更高版本中运行。
    【解决方案2】:

    对于 IIS 5-6,Apache Tomcat 连接器 (JK 1.2) 似乎是一个干净的解决方案。这是一个 IIS ISAPI 过滤器,它允许 IIS 充当其他 Web 服务器的反向代理。它使用Apache JServ Protocol (AJP) 与实际服务请求的应用服务器进行通信。 Tomcat 和 Jetty 都实现了 AJP。 URL 使用类似正则表达式的配置映射到特定的 AJP 服务器实例。

    此 ISAPI 插件 also works with IIS 7.x,但在这种情况下应考虑应用程序请求路由 (see marked answer),因为它可能更适用于非 AJP 服务器。

    【讨论】:

      猜你喜欢
      • 2018-05-28
      • 2014-11-12
      • 2015-09-20
      • 2018-02-22
      • 2020-07-12
      • 2019-09-12
      • 1970-01-01
      • 2019-03-14
      • 2020-07-11
      相关资源
      最近更新 更多