我正在使用
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不存在。
我怎样才能让tomcat认为我是根本?
谢谢,
Niklas B。
答案 0 :(得分:0)
不,ajp配置正在做它想要做的事情。
使用JkMount
映射请求时,AJP过滤器会保留整个请求路径。因此,当您键入yourdomain.com/rest
或yourdomain.com/rest/your_resource
时,ajp会将/rest
或/rest/your_resource
传递给Tomcat。
这样,使用Tomcat的应用程序上下文路径就像在Apache和AJP映射中一样。在这种情况下,将Tomcat应用程序放在名为' / rest'的上下文中应该更容易。
但是当您遇到任何其他情况时,还有其他方法,例如mod_proxy
或mod_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/