apache - jkmount 将挂载路径传递给 tomcat

标签 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 认为我确实去了/rest on tomcat,但我希望 tomcat 认为我在根目录中目录。所以我收到 404 错误,因为/rest/obiously 不存在。 404 Error

如何让 tomcat 认为我处于 root 状态?
谢谢,
尼克拉斯 B.

最佳答案

不,ajp 配置正在做它应该做的事情。

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

这样,就像在 Apache 和 AJP 映射中一样,更容易使用 Tomcat 的应用程序上下文路径。在这种情况下,将 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/

关于apache - jkmount 将挂载路径传递给 tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42581445/

相关文章:

regex - 使用 Apache 的 LocationMatch 规则

CENTOS 7 上的 php shell_exec sudo

windows - VCRUNTIME140.dll 丢失

php - 使用二进制音频数据嵌入 src

web-services - JAXB 类 : reuse for REST

java - 如何在 wicket 应用程序中使用 tomcat 管理器中的 "Guessed User name"?

java - 我必须更改什么配置才能使多个 Tomcat 实例使用单独的 context.xml 文件?

tomcat - Chef cookbook 如何将键值传递给资源

java - Apache hive 和本地化 DataGrid 的默认寻呼机

java - JAX-RS Rest API 接受带有参数问题的 header , Jersey