【问题标题】:apache: configuring routes on similar urls to different tomcat webappsapache:在相似的 url 上配置路由到不同的 tomcat webapps
【发布时间】:2013-09-05 16:57:23
【问题描述】:

假设我在端口 8080 上运行了 tomcat7,它有 2 个 webapps webappAwebAppB

两者都通过 /api/[entity] 在各自的上下文中公开 API:例如

http://www.domain.com:8080/webappA/api/dog

http://www.domain.com:8080/webappB/api/cat

我想用 apache httpd 实现的是设置重写或 mod 代理,以使其在端口 80 上透明,而不在用户 url 中包含 webapp 上下文。

例如

http://www.mydomain.com/api/dog -> transparently calls http://www.domain.com:8080/webappA/api/dog

http://www.mydomain.com/api/cat -> transparently calls http://www.domain.com:8080/webappB/api/cat

我认为我想做的事情是可能的,但我找不到任何东西。

我什至不介意在我的配置中,我必须明确说明 dere /api/cat 转到 webappB/api/cat/api/dog 转到 webappA/api/dog,如果我以后想添加 webappA/api/mouse,我会必须编辑我的配置。

【问题讨论】:

    标签: apache tomcat apache2 tomcat7


    【解决方案1】:

    应该可以将mod_proxy 与反向代理一起使用,例如(未测试):

    ProxyPass /api/dog http://localhost:8080/webappA/api/dog
    ProxyPassReverse /api/dog http://localhost:8080/webappA/api/dog
    
    ProxyPass /api/cat http://localhost:8080/webappB/api/cat
    ProxyPassReverse /api/cat http://localhost:8080/webappB/api/cat
    

    确保 Apache 的 proxyproxy_http 模块已启用。

    【讨论】:

    • 谢谢,效果很好。我什至可以从最后一个 ProxyPass/Reverse 中省略“/cat”,所以如果第一个“测试”没有通过,它就充当通配符
    猜你喜欢
    • 2020-09-03
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 2014-09-08
    相关资源
    最近更新 更多