Apache2 子域代理传递全部指向单个服务器

Apache2 子域代理传递全部指向单个服务器,apache2,reverse-proxy,tomcat,Apache2,Reverse Proxy,Tomcat,我有两个应用程序托管在端口8080上的单个ApacheTomcat上 > http://mydomain.com:8080/application1 http://mydomain.com:8080/application2 我想在他们前面运行一个apache代理,其行为如下 > http://mydomain.com/*(apache2)->http://mydomain.com:8080/application1/*(tomcat) http://subdomain.mydomain.

我有两个应用程序托管在端口8080上的单个ApacheTomcat上 >

  • http://mydomain.com:8080/application1
  • http://mydomain.com:8080/application2
我想在他们前面运行一个apache代理,其行为如下 >

  • http://mydomain.com/*(apache2)->http://mydomain.com:8080/application1/*(tomcat)
  • http://subdomain.mydomain.com/*(apache2)->http://mydomain.com:8080/application2/*(tomcat)
我现在得到的最好的是两台具有不同IP的机器,并相应地路由域和子域

理想情况下,我希望apache代理和两个应用程序在同一台机器上


任何拥有kick arse DEVOps技能的人都可以提供帮助吗?

在mydomain.com(apache)的virtualhost配置中,您需要

ProxyPassMatch ^/(.*)$ http://mydomain.com:8080/application1/$1

subdomain.mydomain.com(apache)的virtualhost配置中,您需要

ProxyPassMatch ^/(.*)$ http://mydomain.com:8080/application2/$1

两个配置文件应该在同一台计算机上,甚至应该在同一个文件上。请参阅一些关于这是如何设置的例子。

< P>除了@ Jon Lin回答,考虑使用<代码> PROXOPACTIONEX/<代码>,以防万一你的应用程序做任何重定向。它在响应上提供了正确的Apache URL(更多信息)。看起来是这样的:

<VirtualHost subdomain.mydomain.com:80>
    ProxyPass / http://localhost:8080/application1/
    ProxyPassReverse / http://localhost:8080/application1/
</VirtualHost>

<VirtualHost mydomain.com:80>
    ProxyPass / http://localhost:8080/application1/
    ProxyPassReverse / http://localhost:8080/application1/
</VirtualHost>

ProxyPass/http://localhost:8080/application1/
ProxyPassReverse/http://localhost:8080/application1/
ProxyPass/http://localhost:8080/application1/
ProxyPassReverse/http://localhost:8080/application1/

希望有帮助。

谢谢大家。。。这很有帮助如果我们保留*:80但在*规则之前添加一个特定的子域,它会起作用吗?在规则破坏它之前添加子域对我来说是有效的