Apache和Tomcat代理

Apache和Tomcat代理,apache,tomcat,proxy,configuration,Apache,Tomcat,Proxy,Configuration,最近,我需要同时使用Apache和Tomcat,其中Apache将用作反向代理,将请求转发到端口80到localhost:8080,我这样做: <VirtualHost *:*> ProxyPass / http://localhost:8080/app/ </VirtualHost> ProxyPass/http://localhost:8080/app/ 它工作得非常好 现在,我需要做的是:让Tomcat在另一个端口8082

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

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

ProxyPass/http://localhost:8080/app/
它工作得非常好

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

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

ProxyPass/http://localhost:8082/app/
但是没有运气。我不能收听8082,因为Tomcat正在这么做

以上是(失败的)尝试将
/
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>

ProxyPass/app1/http://localhost:8080/app1/
ProxyPass/app2/http://localhost:8080/app2/
ProxyPass/app3/http://localhost:8082/app3/
ProxyPass/app4/http://localhost:8082/app4/
#如果您需要一个“/”的后备应用程序,只需最后映射即可。
ProxyPass/http://localhost:8080/
请注意,最后一行是将
/
映射到Tomcat的
上下文(安装在
/
')。不要以任何其他方式进行此操作,否则您将花费数年时间试图使每件事都能正常工作,而您本可以用推荐的方式来完成。

以上所述的是一个(失败的)尝试将
/
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>

ProxyPass/app1/http://localhost:8080/app1/
ProxyPass/app2/http://localhost:8080/app2/
ProxyPass/app3/http://localhost:8082/app3/
ProxyPass/app4/http://localhost:8082/app4/
#如果您需要一个“/”的后备应用程序,只需最后映射即可。
ProxyPass/http://localhost:8080/
请注意,最后一行是将
/
映射到Tomcat的
上下文(安装在
/
')。不要以任何其他方式进行此操作,否则您将花费数年时间试图使每件事都正常工作,而您本可以用推荐的方式完成