2017-08-26 97 views
0

最近,我需要同时使用Apache和Tomcat一起在Apache的是作为反向代理将请求转发到端口80为localhost:8080,我不喜欢这样的:Apache和Tomcat代理

<VirtualHost *:*> 
     ProxyPass  /http://localhost:8080/app/ 
</VirtualHost> 

它工作得很好。

现在,我需要做的是:我有Tomcat监听并在另一个端口8082服务。我需要能够使用www.mydomain.com:8082访问它。我试过了:

<VirtualHost *:8082> 
     ProxyPass  /http://localhost:8082/app/ 
</VirtualHost> 

但是没有运气。我不能听8082,因为Tomcat正在这样做。

回答

2

您上面的内容是尝试将/ URL空间映射到两个不同的位置(尝试失败)。这永远不会起作用。

当代理到Tomcat的,它永远不会重写URL路径是一个好主意(如/ - >/app/因为Tomcat的是会得到各种各样的困惑这是更好的个别应用程序映射:

<VirtualHost *:*> 
    ProxyPass /app1/ http://localhost:8080/app1/ 
    ProxyPass /app2/ http://localhost:8080/app2/ 
    ProxyPass /app3/ http://localhost:8082/app3/ 
    ProxyPass /app4/ http://localhost:8082/app4/ 
    # If you need a fall-back application for `/`, just map it last. 
    ProxyPass/http://localhost:8080/ 
</VirtualHost> 

。请注意,最后一行将映射/映射到Tomcat的ROOT上下文(挂载在/'上)。不要以任何其他方式执行此操作,否则您可能会花费数年的时间尝试使所有操作都可以正常工作,方式