Java 在Apache代理背后使用Tomcat时,getRequestURI中的应用程序前缀存在问题

Java 在Apache代理背后使用Tomcat时,getRequestURI中的应用程序前缀存在问题,java,apache,tomcat,proxy,ajp,Java,Apache,Tomcat,Proxy,Ajp,我的Tomcat在Apache服务器后面有问题。我将Apache设置为用作AJP代理,它似乎可以工作,如果我在Apache服务器上打开浏览器,就会从Tomcat服务器获得输出。我对请求URI有问题。我在程序中使用它,不幸的是它没有给我正确的URI: 当我访问此页面时: http://<apache-server>/test 在日志中返回: http://<apache-server>/app/test /app/test http:///app/test /应用程序/

我的Tomcat在Apache服务器后面有问题。我将Apache设置为用作AJP代理,它似乎可以工作,如果我在Apache服务器上打开浏览器,就会从Tomcat服务器获得输出。我对请求URI有问题。我在程序中使用它,不幸的是它没有给我正确的URI:

当我访问此页面时:

http://<apache-server>/test
在日志中返回:

http://<apache-server>/app/test /app/test
http:///app/test /应用程序/测试
而不是我需要的:

http://<apache-server>/test /test
http:///test /试验
apache服务器上的配置如下:

<VirtualHost *:80>
      ProxyRequests     off
      ProxyPreserveHost on
      ProxyPass / ajp://<tomcat-server>:8009/pps/
      ProxyPassReverse / ajp:/<tomcat-server>:8009/app/
</VirtualHost>

代理请求关闭
代理主机
ProxyPass/ajp://:8009/pps/
ProxyPassReverse/ajp:/:8009/应用程序/
tomcat服务器的server.xml中包含以下内容:

<Connector port="8009" 
            enableLookups="false" 
            redirectPort="8443" 
            protocol="AJP/1.3" />


我发现一些页面建议在tomcat中以ROOT用户身份部署应用程序,但这似乎非常肮脏…

既然您希望以ROOT用户身份部署应用程序,为什么这样做会很肮脏?我不希望在tomcat服务器上以ROOT用户身份部署应用程序,而只希望在远程apache服务器上以ROOT用户身份部署应用程序。apache服务器将此域映射到tomcat,但这不是唯一的应用程序。我将在同一个tomcat服务器上为另一个应用程序创建另一个子域,它需要以相同的方式工作。当然,我可以运行多个tomcat实例,但这将是一个巨大的资源浪费。
<Connector port="8009" 
            enableLookups="false" 
            redirectPort="8443" 
            protocol="AJP/1.3" />