2017-03-03 289 views
0

我使用jkmount通过安装路径到tomcat

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错误,因为/休息/有意不存在。 404 Error

我怎样才能让tomcat认为我在根?
谢谢,
尼克拉斯B.

回答

0

没有,AJP的配置是这样做是为了做确切的事情。

当您将请求与JkMount映射时,AJP过滤器会保留整个请求路径。所以当你输入yourdomain.com/restyourdomain.com/rest/your_resource时,ajp会通过/rest/rest/your_resource给Tomcat。

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

但是,如果您有任何其他情况,还有其他方法,例如,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/ 
+0

当我使用的ProxyPass与AJP它会导致同样的问题,以http一切正常。使用http有什么缺点? –

+0

对我来说听起来很奇怪,ProxyPass ajp导致同样的问题,我已经多次使用这种方式......但无论如何,我认为使用http over ajp没有任何缺点,我看到更多的自我偏好。 – jlumietu