Apache和Tomcat代理

时间:2017-08-26 16:36:18

标签: apache tomcat proxy configuration

最近,我需要同时使用Apache和Tomcat,其中Apache被用作反向代理,以将请求转发到端口80到localhost:8080,我这样做:

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

它的效果非常好。

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

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

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

1 个答案:

答案 0 :(得分:2)

您上面所做的是(失败)尝试将/网址空间映射到两个不同的地方。那永远无法发挥作用。

在代理Tomcat时,重写URL路径绝对不是一个好主意(例如/ - &gt; /app/,因为Tomcat会遇到各种各样的困惑。&#39 ;绘制单个应用程序要好得多:

<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上下文(挂载在/&#39;)。不要以任何其他方式这样做,否则你会花费数年的时间尝试让所有事情都按照推荐的方式完成。