在一个子URI下服务Tomcat

我有很多附加到单个域的服务,所以我希望在http:// server_name / tomcat之下提供Tomcat,Nginx作为Tomcat HTTP连接器的反向代理。

Nginx的configuration非常简单:

location /tomcat { include proxy_pass.conf; proxy_pass http://127.0.0.1:8080; } 

如果我保持原样,Tomcat无法parsing以/tomcat开头的请求,但是如果我另外设置了alias /; 在Nginx中,那么Tomcat工作的很好,但不幸的是,它不能解决它所服务的path,所以所有的URL都丢失/tomcat

我经历了几次Tomcat 7的configuration参考 ,但是我找不到任何能够让我configurationTomcat为/tomcatpath下的所有应用程序提供服务的地方,或者将它作为前缀添加到上下文中每个应用程序的path。

我可以为每个应用程序手动configuration一个<context/>容器的server.xml ,但这只会让我感到不安。 谁能告诉我,我明显失踪的是什么?

在过去的四五年里,我一直试图做同样的事情,我尝试了很多不同的方式,但是我一次次尝试都失败了。 最后,我得出结论:(a)不可能(b)即使通过某种方式可以做到这一点也不值得。 虽然,如果有人知道这一点,我会感到惊喜的。

未经testing,但您最好的select是将Java Bridge加载到APACHE2 / PHP中,以便在遇到它时运行Java代码。

http://www.dsl.uow.edu.au/~sk33/php5java.htm

显然,Tomcat 6引入了一个机制来实现这一点,通过在webapp文件夹或.war文件名之前加上前缀,并用散列隔开。 所以,例如:

 ${catalina.base}/webapps/tomcat#app1 ${catalina.base}/webapps/tomcat#app2.war 

…将分别通过http:// localhost:8080 / tomcat / app1 /和http:// localhost:8080 / tomcat / app2 /访问 ,而无需进一步configuration。

在Tomcat 上下文容器参考中有一些encryption的解释,但是在Tomcat用户邮件列表上看到这个有用的信息 。

不幸的是 ,有一个问题:显然,Cocoon(最高2.1.11)在webapps上的扼stream器,其path包含一个散列(请参阅https://issues.apache.org/jira/browse/COCOON-2270 )。

所以,当你没有在Tomcat内部运行任何基于Cocoon的webapps时,在他们的文件夹名称中添加“哈希”前缀似乎是一个可能的解决scheme。