jkmount将挂载路径传递给tomcat

时间:2017-03-03 14:28:42

标签: apache rest tomcat tomcat8 mod-jk

我正在使用

JKMount        /rest/*    ajp13_worker
JKMount        /rest      ajp13_worker

在domain.com上提供php,在domain.com/rest/上提供我的servlet 然而,当我去domain.com/rest/时,它就像我进入了domain.com/rest/rest一样,所以tomcat认为我确实去了/ tomcat但我希望tomcat认为我在根目录。所以我得到404错误,因为/ rest / obiously不存在。 404 Error

我怎样才能让tomcat认为我是根本? 谢谢,
Niklas B。

1 个答案:

答案 0 :(得分:0)

不,ajp配置正在做它想要做的事情。

使用JkMount映射请求时,AJP过滤器会保留整个请求路径。因此,当您键入yourdomain.com/restyourdomain.com/rest/your_resource时,ajp会将/rest/rest/your_resource传递给Tomcat。

这样,使用Tomcat的应用程序上下文路径就像在Apache和AJP映射中一样。在这种情况下,将Tomcat应用程序放在名为' / rest'的上下文中应该更容易。

但是当您遇到任何其他情况时,还有其他方法,例如mod_proxymod_proxy_ajp。它们都充当反向代理,将上下文路径/rest映射到tomcat,但是使您能够在将请求重定向到Tomcat时更改请求的请求路径。 mod_proxy和mod_proxy_ajp之间的区别在于,第一个使用Tomcat的http端口,而第二个使用ajp端口。

映射应该以这种方式工作:

ProxyPass /rest http://dns.ajp13_worker:8080/
ProxyPass /rest ajp://dns.ajp13_worker:8009/