【问题标题】:Redirect URL path to forward to tomcat servlet using Apache/mod_proxy使用 Apache/mod_proxy 重定向 URL 路径以转发到 tomcat servlet
【发布时间】:2010-10-14 10:31:12
【问题描述】:

我目前有一个在ROOT下运行的tomcat servlet 1:

api1.myhost.com:8080/

我正在使用 mod_proxy 并简单地转发来自 api1.myhost.com 到这个实例。这从今天开始有效。

我现在安装了第二个 servlet 2,它在同一个 tomcat 实例(相同的 IP 地址)下运行:

www.myhost.com:8080/servlet2

我希望对新 URL api2 的所有请求都转到第二个 servlet,这样:

api2.myhost.com

现在被转发到第二个 servlet 实例。

我创建了一个 A 记录,以便 api2.myhost.com 指向我的服务器 IP。如何让 api2.myhost.com 转发到 www.myhost.com:8080/servlet2 ?

【问题讨论】:

    标签: apache tomcat mod-proxy


    【解决方案1】:

    您需要创建两个 VirtualHost,其中 on 指向第一个 webapp,另一个指向第二个。

    <VirtualHost *:80>
        ServerName api1.myhost.com
        ProxyPass / http://api1.myhost.com:8080/
        ProxyPassReverse / http://api1.myhost.com:8080/
    </VirtualHost>
    
    <VirtualHost *:80>
            ServerName api2.myhost.com
            ProxyPass / http://www.myhost.com:8080/servlet2
            ProxyPassReverse / http://www.myhost.com:8080/servlet2
    </VirtualHost>
    

    请注意,由于 tomcat 上的路径与 apache 上的路径不同,因此您需要在应用程序中使用相对 URL。

    【讨论】:

    • 太棒了,这与一个小的修正一起工作。我还必须有以下行: NameVirtualHost *:80
    • 我们将这些虚拟主机记录添加到什么文件?
    • 主 apache conf 文件中包含的任何文件。每个虚拟主机通常都有一个单独的文件。
    猜你喜欢
    • 2013-07-11
    • 1970-01-01
    • 2011-01-07
    • 2018-10-12
    • 2012-01-10
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多