apache:将类似URL上的路由配置到不同的tomcat webapps

时间:2013-09-02 14:37:28

标签: apache tomcat apache2 tomcat7

假设我在端口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,我想要实现的是在端口80上设置重写或mod代理,使其透明,而不在用户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

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

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

1 个答案:

答案 0 :(得分: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模块。