阿帕奇tomcat前沿
是否可以为单个web应用程序指定多个上下文路径?阿帕奇tomcat前沿,tomcat,Tomcat,是否可以为单个web应用程序指定多个上下文路径? 例如,我有一个运行在8080端口上的tomcat应用程序myapp。我想用apache解决这个问题,这样localhost/app1或localhost/app2都被路由到tomcat中的myapp。如何实现这一点?我不想使用重定向。无法为同一个应用定义两个路径。您可以为同一WAR指定2个路径,但它仍然是同一应用程序的2个实例 但是,您可以将应用程序定义为ROOT并检查代码中的路径。例如,将应用程序放在webapps/ROOT中,并将此逻辑添加到
例如,我有一个运行在8080端口上的tomcat应用程序myapp。我想用apache解决这个问题,这样localhost/app1或localhost/app2都被路由到tomcat中的myapp。如何实现这一点?我不想使用重定向。无法为同一个应用定义两个路径。您可以为同一WAR指定2个路径,但它仍然是同一应用程序的2个实例 但是,您可以将应用程序定义为ROOT并检查代码中的路径。例如,将应用程序放在webapps/ROOT中,并将此逻辑添加到servlet中
String path = request.getPathInfo();
if (path.indexOf("/app1") >= 0)
app1(request, response);
else if (path.indexOf("/app2") >= 0)
app2(request, response);
是的,您可以在ApacheWeb服务器设置上执行此操作。此选项与Tomcat无关。您可以对ApacheWeb服务器后面的任何应用程序服务器执行此操作,可以是Tomcat、Jetty,甚至是运行PHP脚本或静态页面的另一个ApacheWeb服务器 实际设置取决于将ApacheWeb服务器连接到Tomcat的方法 例如,如果使用mod_proxy,配置将如下所示:
ProxyPass /app1 http://192.168.11.25:8080/myapp
ProxyPassReverse /app1 http://192.168.11.25:8080/myapp
ProxyPass /app2 http://192.168.11.25:8080/myapp
ProxyPassReverse /app2 http://192.168.11.25:8080/myapp
我刚刚在我的机器上尝试了上述设置,以在两个不同的前端URL中公开相同的WebDAV Subversion
不管你的应用程序是否真的支持这一点,那就另当别论了。如果您的应用程序需要指定前端URL,并且您正在使用mod_代理,例如安装像Atlassian Confluence这样的应用程序,那么这根本不起作用。如果你的应用程序不需要这些,那就好了
但您可以通过创建一个复杂的URL重写(mod_Rewrite)来降低级别,该重写也应该能够解决这个问题
您需要注意的另一件事是您的应用程序处理会话、URL、原始IP地址等的方式。如果它不支持,并且您无法修改应用程序,但是我不想修改我的应用程序,而是想修改httpd.conf,以便它将请求路由到tomcat